iOS8的新特性:
1.sizeClass 的推出:在 iOS 8 中,Apple 的工程师们可以说“极富想象力”地干脆把限制和表征屏幕尺寸的长宽数字给去掉了,取而代之使用 size classes 的概念,将长宽尺寸按照设备类型和方向归类为 regular 和 compact 两类。通过为不同的设备定义尺寸分类,用来定义同类型的操作特性,这使得开发者更容易利用一套 UI 来适配不同的屏幕。2. Cloud Kit :可以不更改应用现有的数据模型和结构,而只是使用 Cloud Kit 来从云端获取数据或者向云端存储数据。3.使用位置服务和推送消息必须经过用户授权。4.新增加了 Photos.framework 框架,这个框架用于与系统内置的 Photo 应用进行交互,不仅可以替代原来的 Assets Library 作为照片和视频的选取,还能与 iCloud 照片流进行交互。除此之外,一个很重要的特性是还可以监听其他应用对于照片的改变,可以说整个框架非常灵活。5.第三方软件也可以通过touchID验证。(支付宝等)。6.heatkit框架的推出。健康应用。步数,跑步距离,已爬楼梯,绑定应用后获取更多健康信息。7.Spotlight。有时你需要查找一个联系人或一款app。Spotlight现可以为你提供各种建议,包括来自维基百科条目、周边地点、热门新闻以及更多。它甚至聪明到可以识别背景和地点,为你提供极其匹配的信息。iOS 9 适配相关: 2.如果不适配iOS9,就不能偷偷在后台定位(不带蓝条,见图)!好消息:将允许出现这种场景:同一App中的多个location manager:一些只能在前台定位,另一些可在后台定位,并可随时开启或者关闭特定location manager的后台定位。如果没有请求后台定位的权限,也是可以在后台定位的,不过会带蓝条。 3.UIAlertView过期。用UIAlertController 可以代替其功能。 4.tableView刷新不出来问题。虽然现在的iOS9已经推送正式版了,但是iOS9使用时还是会感觉到App比以前更加卡顿了,tableView拖动时卡顿显示的最为明显。 并且之前遇到一个bug,原本好的项目用xcode7一编译,tableView刷新出了问题 ,[tableView reloadData]无效 有一行cell明明改变了但是刷新不出来。 感觉可能是这个方法和某种新加的特性冲突了,猜测可能是reloadData的操作被推迟到下一个RunLoop执行最终失效。解决的方法是,注释[tableView reloadData],改用局部刷新,问题居然就解决了。 5.URL schemeURL scheme一般使用的场景是应用程序有分享或跳其他平台授权的功能,分享或授权后再跳回来。在iOS8并没有做过多限制,但是iOS9需要将你要在外部调用的URL scheme列为白名单,才可以完成跳转如果iOS9没做适配 会报如下错误 具体的解决方案也是要在info.plist中设置LSApplicationQueriesSchemes类型为数组,下面添加所有你用到的scheme 6. iOS 8自动开启多点触控,但是iOS9默认不开启 在viewdidLoad里面增加: self.view.multipleTouchEnabled=YES; 7.IOS9增加了语言后面的地区代码,中国原来的zh-Hanz变成了zh-Hanz-CN 8. Xcode7打包不了老项目了,报错bitcode,解决方法,build setting中关闭bitcode,设置enable bitcode为NO。 9.iOS中部分字体可能有所调整间隙变大,label中显示不全等问题。