每个这些调用不同的构造函数。字符串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