1、升級到Xcode9后新建一個工程,直接報錯,如下圖:

那把下圖默認勾選的一項去掉就可以了,注意將LaunchScreen.storyboard 和Main.storyboard 的都要去掉。

因為在iOS7中引入的Top Layout Guide和Bottom Layout Guide,這些布局在iOS 11中被棄用,取而代之的是Safe Area Layout Guide. 如果繼續(xù)報錯,那就將下圖中系統(tǒng)默認勾選的兩項也去掉:

2、項目中用到了RealReachability來實時檢測網(wǎng)絡(luò),但是用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上拉刷新,明明已經(jīng)調(diào)用結(jié)束刷新,但是并沒有作用,還在一直加載請求數(shù)據(jù),如下圖所示:

解決方法:?
self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;