私は、 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
}
そして、View Controller のクラス宣言:
@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 になるのはなぜですか?