升级xcode 8 ,iOS 10 之后发现的问题
一、注释的快捷键不能使用。
二、相机,相册,定位,通讯录等闪退问题。
三、iOS 10 两个字宽度由24 变成27了。
一、注释快捷键不能使用
升级xcode 8 之后发现,之前使用的注释快捷键(commend + / )不能使用的问题,网上搜索,是因为苹果解决xcode ghost。把插件屏蔽了。
解决方法:
命令运行: sudo /usr/libexec/xpccachectl 然后必须重启电脑后生效。
运行过后,确实能够再次使用快捷键注释了。但是,我的一个朋友说,不要再使用插件了,不使用插件的注释快捷键是commend + option + / ,我是运行过命令了,不知道这个快捷键是否有用,如果有用,那就不要使用插件了。
二、相机,相册,定位,通讯录等闪退问题。
相机,相册,定位,通讯录等都是需要请求权限的。网上搜索,是因为iOS 10 对请求权限的修改,需要在plist 文件里面添加字段。
类型如下:
<!-- 相册 -->
<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>
三、iOS 10 两个字的宽度由24 变成27了
导致部分导航栏上面的自定义的返回文字显示不出来,变成 ... 了,这个目前方法,增加label的宽度。或者自动适配文字的宽度。方法如下:
//返回输入字体的宽高(CGSize)
+ (CGSize)returnTextSize:(NSString *)textStr textFont:(CGFloat)font
{
UILabel *textLabel = [UILabel new];
textLabel.font = [UIFont systemFontOfSize:font];
textLabel.text = textStr;
textLabel.numberOfLines = 0;//根据最大行数需求来设置
textLabel.lineBreakMode = NSLineBreakByTruncatingTail;
CGSize maxLabelSize = CGSizeMake(1000, 1000);//labelSize 的最大值
//关键语句
CGSize expectSize = [textLabel sizeThatFits:maxLabelSize];
textLabel = nil;
return expectSize;
}
上面我是先建立了一个label,用label 去获取 文字的宽高并且返回出来。用到长度的时候,用size.width 。当然你也可以在方法里面直接返回文字长度。
好了,不说了,去改APP问题了。