持续更新
快捷键&第三方插件失效
Xcode 8 中,这个注释快捷键⌘+/失效了,简直了.....这个稍不注意就把整段代码给删掉了,beta版本的问题显然没有在正式版本解决。
解决方法:在终端输入 sudo /usr/libexec/xpccachectl 然后重启电脑,亲测有效。
Xcode 8 取消了第三方插件,简直是噩耗呀。Xcode 8 也集成了一些插件,比如文档注释,如果你发现Add Documentation是灰色的不能使用也用上面命令执行即可。
nullable错误
在NSError 前面添加nullable会报错 比如:(nullable NSError* )error 要把nullable删除。
Delegate
现在使用animation的Delegate 都要在.h文件添加CAAnimationDelegate
AppDelegate* app = (AppDelegate*)[[UIApplication sharedApplication] delegate]; 这个也要加个(AppDelegate *)
访问相机crash
在iOS 10调用相机直接crash,在iOS 10中调用相机,访问通讯录,访问相册等都要在plist中加入权限访问描述,不然涉及到这些权限的地方就会直接crash。
相机权限: Privacy - Camera Usage Description
相册权限: Privacy - Photo Library Usage Description
通讯录权限: Privacy - Contacts Usage Description
蓝牙权限:Privacy - Bluetooth Peripheral Usage Description
定位权限:Privacy - Location When InUseUsageDescription
语音转文字权限:Privacy - Speech RecognitionUsageDescription
日历权限:Privacy - CalendarsUsageDescription
ATS设置
关于苹果从 2017 年 1 月 1 日起,所有的新提交 app 默认是不允许使用NSAllowsArbitraryLoads来绕过 ATS 限制的。所以最好还是使用HTTPS的链接比较稳妥。因为Xcode 8支持最低编译的版本是iOS 8 ,苹果都放弃了iOS 7 ,我们也不再维护了。最低版本iOS 8 借此可以删掉程序里面兼容iOS 7 的代码,或者使用新的一些API。比如:
1.使用WKWebview 全面替代 UIWebView 。WKWebView是iOS 8开始使用,亲测比UIWebView好用不是一丢丢。而且 NSAllowsArbitraryLoadsInWebContent在info.plist中设置为YES之后,可以在WKWebView中访问http/https链接,比较坑的就是它会覆盖掉NSAllowsArbitraryLoads的设置,默认程序中其它非webview的链接请求都是要https
2.NSURLSession 替代 NSURLConnection。NSURLSession还算比较好用。但是之前NSURLConnection是可以支持异步/同步执行,session是异步执行,如果一定要用session来实现同步,需要额外的一些线程操作。
UNUserNotification
iOS 10 将本地通知和远程通知都融合在一起,并且还丰富的通知的形式,又一个extension。
喵大 OneV 's Den 活久见的重构-UserNotifications
Dely 写的3篇关于消息推送 iOS 10 消息推送秘籍总结