標籤:
開發中常見錯誤和警告總結(十八)
Xib/StoryBoard支援
Swift項目在使用Xib/StoryBoard時,會遇到兩種不同的問題
Xib:不載入視圖內容
Storyboard:找不到類檔案
Xib不載入視圖內容
在建立UIViewController時,預設選中Xib檔案,在Xib與類檔案名稱一致時,可通過以下代碼執行個體化:
let controller = ILViewController()
運行,介面上空無一物,Xib沒有被載入。解決辦法,在類的前面加上@objc(類名),例如:
import UIKit@objc(ILViewController)class ILViewController: UIViewController {}
Tips:
StoryBoard中建立的UIViewController,不需要@objc(類名)也能夠保持相容
Storyboard找不到類檔案
Swift語言引入了Module概念,在通過關鍵字@objc(類名)做轉換的時候,由於Storboard沒有及時更新Module屬性,會導致如下兩種類型錯誤:
用@objc(類名)標記的Swift類或者Objective-c類可能出現錯誤:
2015-06-02 11:27:42.626 ILSwift[2431:379047] Unknown class _TtC7ILSwift33ILNotFindSwiftTagByObjcController in Interface Builder file.
解決辦法,按,選中Module中的空白,直接斷行符號
無@objc(類名)標記的Swift類
2015-06-02 11:36:29.788 ILSwift[2719:417490] Unknown class ILNotFindSwiftController in Interface Builder file.
解決辦法,按,選擇正確的Module
3.產生上面錯誤的原因: 在設定好Storyboard後,直接在類檔案中,添加或者刪除@objc(類名)關鍵字,導致Storyboard中 Module屬性沒有自動更新,所以一個更通用的解決辦法是,讓Storyboard自動更新Module,如下:
錯誤類比Demo下載
為了能夠讓大家更清楚的瞭解解決流程,將上面的錯誤進行了類比,想動手嘗試解決以上問題的同學可以直接下載demo
iOS開發——錯誤總結篇&開發中常見錯誤和警告總結(十八)