1、升级到Xcode9后新建一个工程,直接报错,如下图:
那把下图默认勾选的一项去掉就可以了,注意将LaunchScreen.storyboard 和Main.storyboard 的都要去掉。
因为在iOS7中引入的Top Layout Guide和Bottom Layout Guide,这些布局在iOS 11中被弃用,取而代之的是Safe Area Layout Guide. 如果继续报错,那就将下图中系统默认勾选的两项也去掉:
2、项目中用到了RealReachability来实时检测网络,但是用Xcode9打开后运行直接报错,如图:
解决办法:将缺少文件.m都在Compile Sources中添加上就可以了
还有可能会有这种错误,如下图:
解决方法:
将报错的地方这样写:
__Check_Compile_Time(sizeof(ICMPHeader) == 8);
__Check_Compile_Time(offsetof(ICMPHeader, type) == 0);
__Check_Compile_Time(offsetof(ICMPHeader, code) == 1);
__Check_Compile_Time(offsetof(ICMPHeader, checksum) == 2);
__Check_Compile_Time(offsetof(ICMPHeader, identifier) == 4);
__Check_Compile_Time(offsetof(ICMPHeader, sequenceNumber) == 6);
就可以了。
3、MJRefresh上拉刷新,明明已经调用结束刷新,但是并没有作用,还在一直加载请求数据,如下图所示:
解决方法:
self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;