1.代码注释不能用
原因:
苹果解决xcode ghost,把插件屏蔽了。
解决方法:
终端执行 sudo /usr/libexec/xpccachectl
重启电脑后生效。
注释少了VVDocumenter的解决方法(默认快捷键:option+command+/)
自定义注释快捷键
2.版本判断问题
不可使用
#define IsIOS10 ([[[[UIDevice currentDevice] systemVersion] substringToIndex:1] intValue]>=10)
原因:
版本10位数为2位(超过了1位)
解决方法
#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
3.隐私数据问题
项目中访问了隐私数据如:相机,相册,联系人等,在Xcode8中打开编译会crash。
原因
iOS对用户的安全和隐私的增强,在申请私有权限的时候需要添加描述(Xcode 8之前使用的是系统的权限通知框)。
解决办法
在info.plist添加对应的key, value可随意填写。
<!-- 相册 -->
<key>NSPhotoLibraryUsageDescription</key>
<string>您同意了,我才能访问相册</string>
<!-- 相机 -->
<key>NSCameraUsageDescription</key>
<string>您同意了,我才能访问相机</string>
4.获取UIView的frame不正确问题(返回的width & height 都是 1000)
在viewDidLoad或者awakeFromNib的时候获取View的frame不正确,常见的问题是设置圆角出错。
原因
Xcode8方式编译后,在UIView还没有“布局完毕”的时候默认返回的frame的size大小为1000x1000,等到“布局完毕”后才能获取到正确的大小。
解决办法
在viewDidLoad或者awakeFromNib调用完super方法后再调用View的layoutIfNeeded即可获取到正确的frame值。
-(void)awakeFromNib{
[super awakeFromNib];
//调用此方法后,才可以获取到正确的frame
[self layoutIfNeeded];
}
- (void)viewDidLoad {
[super viewDidLoad];
//调用此方法后,才可以获取到正确的frame
[self.view layoutIfNeeded];
}
本文将持续更新遇到的问题...