果然是苹果每次更新,都要引来好多改动,大修大改之际,免不得费颇多功夫,查阅一些资料踩完坑之后,现总结下适配iOS10时候的一些知识点
1:最明显的就是隐私数据访问问题,这个不适配的话,点击就会崩溃,甚至连ipa包都发不出去,主要的方法就是在info.plist文件中加入你项目中使用到的隐私选项,对比与ios8或者iOS9时代,这次的选项变得很多,主要有以下:
< 相册 >
<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能访问相册</string>
<相机 -->
<key>NSCameraUsageDescription</key>
<string>App需要您的同意,才能访问相机</string>
<麦克风>
<key>NSMicrophoneUsageDescription</key>
<string>App需要您的同意,才能访问麦克风</string>
<位置 >
<key>NSLocationUsageDescription</key>
<string>App需要您的同意,才能访问位置</string>
<在使用期间访问位置>
<key>NSLocationWhenInUseUsageDescription</key>
<string>App需要您的同意,才能在使用期间访问位置</string>
<始终访问位置 >
<key>NSLocationAlwaysUsageDescription</key>
<string>App需要您的同意,才能始终访问位置</string>
<日历 >
<key>NSCalendarsUsageDescription</key>
<string>App需要您的同意,才能访问日历</string>
<提醒事项>
<key>NSRemindersUsageDescription</key>
<string>App需要您的同意,才能访问提醒事项</string>
<运动与健身>
<key>NSMotionUsageDescription</key> <string>App需要您的同意,才能访问运动与健身</string>
<健康更新>
<key>NSHealthUpdateUsageDescription</key>
<string>App需要您的同意,才能访问健康更新 </string>
<健康分享>
<key>NSHealthShareUsageDescription</key>
<string>App需要您的同意,才能访问健康分享</string>
<蓝牙>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>App需要您的同意,才能访问蓝牙</string>
<媒体资料库>
<key>NSAppleMusicUsageDescription</key>
<string>App需要您的同意,才能访问媒体资料库</string>
或者在xcode的target中选择Capabilities然后选择Background Modes然后打开然后选择相应的权限即可
2:.UIStatusBar的问题:
在iOS10中,如果还使用以前设置UIStatusBar类型或者控制隐藏还是显示的方法,会报警告,方法过期,点击进去我们会发现,这个方法在ios10 已经过期了,即不能在通过uiapplacation来设置状态栏的类型了,可以通过设置属性UIStatusBarStyle或者preferredStatusBarStyle方法来设置,具体可以点击进去看api
3:UITextField
在iOS 10 中,UITextField
新增了textContentType
字段,是UITextContentType
类型,它是一个枚举,作用是可以指定输入框的类型,以便系统可以分析出用户的语义.是电话类型就建议一些电话,是地址类型就建议一些地址.可以在
#import <UIKit/UITextInputTraits.h>
文件中,查看textContentType
字段