我正在使用AppleloadNibNamed:owner:options:
记录的从 nib 文件加载自定义 UITableViewCell :
ItemCell *cell = (ItemCell *)[tableView dequeueReusableCellWithIdentifier:cellId];
if (cell == nil) {
// (1)
[[NSBundle mainBundle] loadNibNamed:@"ItemCell" owner:self options:nil];
// (2)
cell = self.itemCell;
self.itemCell = nil;
// (3)
// code continues here
}
以及视图控制器的类声明:
@interface MyViewController : UIViewController<UITableViewDelegate, UITableViewDataSource> {
@private
UITableView *tableView;
ItemCell *itemCell;
}
@property (nonatomic, retain) IBOutlet ItemCell *itemCell;
MyViewController 是 ItemCell 的文件所有者。
我正在观察以下内容:
- (1)
self.itemCell
保留计数为 0 - (2)
self.itemCell
保留计数为 2 - (3)
self.itemCell
保留计数为 0 - (3)
cell
保留计数为 1
有人可以解释一下:
- 为什么
self.itemCell
保留计数在 (2) 和 (3) 之间从 2 变为 0? - 为什么
cell
(3)中的保留计数等于1?