最近寫一個拼車專案,馬上提交測試了發現在 iOS10上邊很多地方崩潰,由於筆者所有 UI介面都是用 xib 完成的,導致 iOS11一些新的特性,沒有辦法在 iOS10上使用,具體如下.
1 使用到 New Color Set 導致執行在 iOS10上邊崩潰
Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException',
reason: 'Could not instantiate class named _UIColorAttributeTraitStorage'
複製程式碼
雖然我在程式碼層面做過了版本適配 ,但是xib 上的就沒法使用了,所幸 xib 中使用到 New Color Set 地方不多,很快就替換成16進位制顏色.
2 UITableViewCell高度在 iOS10上邊不正確 iOS11我使用的是 safeArea Autolayout tableView 高度都是交給系統去計算 ,設定UITableViewCell高度為 UITableViewAutomaticDimension.
這個問題也好解決 ,由於我所有 TableView 都是在 YVBaseViewController 裡邊建立,只需要在YVBaseViewController裡邊新增如下程式碼即可解決問題.
總結 : 之前一直未在 iOS10上邊執行,導致今天發現 iOS10上邊會出現崩潰,除了要不Assets.xcassets裡邊的 Color Set 刪除外,其他方面改動不大.筆者由於所有地方UI 介面都是在 xib 上完成,所以修復時候只需要針對 xib檔案即可.
寫在最後筆者還是推薦使用 IB 來搭建 UI 介面,高效快速搞定介面佈局,將主要精力用在業務邏輯方面. 業務功能採用繼承和多型可以減少很多重複程式碼, xib 其實也可以通過複製貼上快速建立的,讓 UI 介面不再花去你大量時間.
好了,我是大兵布萊恩特,歡迎加入博主技術交流群,iOS 開發交流群