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;