環(huán)境
xcode8.3事哭,swift3袜硫,rxswift 3.6
前言
在做新項目并且對swift不是那么了解的時候抖誉,搭建好框架跷坝,有各種基類(baseView醉锅,baseTableView之類)勤庐,但是在使用自定義xib視圖的時候(或者從vc的xib里二鳄,例如有個tableview曙搬,拖好屬性后改為LWBXXXXTableView摔吏,LWBXXXTableView繼承LWBBaseTableView),總是會報錯fatalError("init(coder:) has not been implemented")
原因
之前在創(chuàng)建baseTableView的時候是提供了純代碼的創(chuàng)建纵装,創(chuàng)建自定義參數(shù)的init的時候征讲,swift會強制要求你添加
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
如圖:
因為這個問題,后面有跟xib有關(guān)的創(chuàng)建都會報無法完成error
解決方法
嘗試用convenience這個參數(shù)修飾init橡娄,并且在baseTableView-》override func awakeFromNib() 配置跟純代碼的init的一些配置(達到二種創(chuàng)建控件的方式)
如圖:
優(yōu)化代碼結(jié)構(gòu)
接下來就愉快的食用啦诗箍,把從vc的xib里的tableView分離出來,單獨處理視圖(解藕)挽唉,自定義的tablview里的代碼層次也更加清晰明了
如圖: