每個這些調用不同的構造函數。字符串VS NSStringFromClass內dequeueReusableCellWithIdentifier
let cell = tableView.dequeueReusableCellWithIdentifier(NSStringFromClass(MessageSentDateCell), forIndexPath: indexPath) as MessageSentDateCell
let cell = tableView.dequeueReusableCellWithIdentifier("MessageSentDateCell", forIndexPath: indexPath) as MessageSentDateCell
頂部電話:
override init(style: UITableViewCellStyle, reuseIdentifier: String?)
第二行調用:
required init(coder aDecoder: NSCoder)
然而,在示例項目庫,我指的是,required init(coder aDecoder: NSCoder)
是不是真正落實。所以我想調用第一個構造函數。任何想法爲什麼第二行不會調用第一個構造函數?
是,類名和標識是相同的。
適當的技術取決於你如何實現你的UI:它是一個故事板細胞原型?一個NIB?或者是以編程方式實例化單元? – Rob
我正在使用符合我指定和編程的類的Storyboard單元格原型 – user83039
並且您將所有IBOutlet都連接到了單元格子類的屬性?然後,第二個調用'initWithCoder'的'dequeueReusableCellWithIdentifier'是實例化自定義子類時故事板調用的適當方法。在initWithCoder方法中放入任何自定義初始化,或在'initWithCoder'完成時讓'cellForRowAtIndexPath'做必要的附加配置。如果你不需要任何特殊配置(除了插座),那麼你根本就不需要實現'initWithCoder' ...... – Rob