2

我对objective-c很陌生,并且对原型单元有疑问。

我有一个带有自定义单元格的表格视图,效果很好。

现在我在我的自定义单元类中也被覆盖-(id)init-(id)initWithStyle: reuseIdentifier:

如果我对单元格进行类检查,它显然是我的自定义类,但从未调用过任何 init 方法。

所以它为我创造了它们,但以某种方式避免了对我-(id)init来说似乎很奇怪的射击。

我想我可以自己初始化它们,但它们可以在没有被创建的情况下存在似乎真的很奇怪?

谢谢!

4

3 回答 3

18

如果它是来自故事板的原型单元。- (id)initWithCoder:被调用。所以你需要覆盖:

- (id)initWithCoder:(NSCoder *)coder
{
  self = [super initWithCoder:coder];
  if (self) {
       //custom stuff here
  }

  return self;
}

对于从情节提要中唤醒的任何事物都是如此。

于 2012-04-30T15:49:14.020 回答
1

您是否从 xib 加载了这些单元格?如果是这样,请尝试awakeFromNib改用。

于 2012-03-02T15:45:44.857 回答
0

您应该用于初始化自定义单元格的方法是:

   -(id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier{

    if(self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier]){

    }
    return self;    
}
于 2012-03-02T11:00:10.983 回答