Objective c 当界面生成器初始化UITableViewCell时,调用什么方法?

Objective c 当界面生成器初始化UITableViewCell时,调用什么方法?,objective-c,cocoa-touch,uitableview,Objective C,Cocoa Touch,Uitableview,我有一个自定义的UITableViewCell,在它显示在UITableView中之前,我需要初始化一些IVAR。我重写了-(void)init,但它似乎不是指定的初始值设定项。我应该把代码放在哪里 编辑:单元格是使用Interface Builder中的UITableViewCell原型创建的。是UITableViewCell的指定初始值设定项。是UITableViewCell的指定初始值设定项 - (id)initWithCoder:(NSCoder *)decoder; 此外,对于听起来

我有一个自定义的UITableViewCell,在它显示在UITableView中之前,我需要初始化一些IVAR。我重写了
-(void)init
,但它似乎不是指定的初始值设定项。我应该把代码放在哪里

编辑:单元格是使用Interface Builder中的UITableViewCell原型创建的。

是UITableViewCell的指定初始值设定项。

是UITableViewCell的指定初始值设定项

- (id)initWithCoder:(NSCoder *)decoder;
此外,对于听起来像您想要做的事情,您可能需要覆盖:

-(void)awakeFromNib;
此外,对于听起来像您想要做的事情,您可能需要覆盖:

-(void)awakeFromNib;

我重写了它并插入了一个NSLog,但它似乎没有被调用。该语句在技术上是正确的,因为它是指定初始化器的类,所以原始问题中的init总是错误的。它不会被调用,因为单元格是在IB中定义的,而不是在代码中定义的,所以IB会初始化它。因此,当您添加编辑时,它才变得错误。我覆盖了它并插入了NSLog,但它似乎没有被调用。该语句在技术上是正确的,因为它是指定初始值设定项的类,所以原始问题中的init始终是错误的。它不会被调用,因为单元格是在IB中定义的,而不是在代码中定义的,所以IB会初始化它。因此,只有在添加编辑时才出现错误。需要明确的是:如果需要确保从xib/情节提要加载整个视图(即,如果您通过outlet属性引用任何内容),则最好使用awakeFromNib。如果您只初始化自己的IVAR,而不关心控件或输出的状态,initWithCoder将起作用。请参阅@justme这里的最高评级但未选中的答案:要清楚:如果您需要确保从xib/情节提要加载整个视图(即如果您通过outlet属性引用任何内容),那么awakeFromNib是最佳选择。如果您只初始化自己的IVAR,而不关心控件或输出的状态,initWithCoder将起作用。请参见@justme中排名靠前但未选中的答案: