直到现在,我正在做这样的事情:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
NSArray *nibsArray = [[NSBundle mainBundle] loadNibNamed:@"BOAFormCell" owner:self options:nil];
self = nibsArray[0];
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.valueTextLabel.numberOfLines = 2;
}
return self;
}
这显然会导致内存泄漏。
如果我将加载代码放在 cellForRowAtIndexPath 中,那么它将使 ViewController 成为 xib 的所有者。它会在 VC 中寻找出口。
我已经在很多 ViewController 中重复使用了该单元格。
我想避免这种泄漏,但我不希望所有这些 VC 成为 xib 的个人所有者并在那里实现 IBActions 并在其中拥有 Outlets 的属性。
我应该创建一个静态方法,从 xib 加载单元格并将其返回给我吗?但是我将如何使对象成为 xib 的所有者?