Iphone 加载loadNibNamed的UITableViewCell时保留计数
我正在使用的Iphone 加载loadNibNamed的UITableViewCell时保留计数,iphone,objective-c,ios,uitableview,nsbundle,Iphone,Objective C,Ios,Uitableview,Nsbundle,我正在使用的loadNibNamed:owner:options:如所述从nib文件加载自定义UITableViewCell: ItemCell *cell = (ItemCell *)[tableView dequeueReusableCellWithIdentifier:cellId]; if (cell == nil) { // (1) [[NSBundle mainBundle] loadNibNamed:@"ItemCell" owner:self options:ni
loadNibNamed: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:UIViewController{
@私人的
UITableView*表格视图;
ItemCell*ItemCell;
}
@属性(非原子,保留)IBOutlet ItemCell*ItemCell;
MyViewController是ItemCell的文件所有者
我注意到以下几点:
- (1)
retain计数为0self.itemCell
- (2)
retain计数为2self.itemCell
- (3)
retain计数为0self.itemCell
- (3)
保留计数为1单元格
- 为什么
retain count在(2)和(3)之间从2变为0?self.itemCell
- 为什么(3)中的
单元格的保留计数等于1?
[self.itemCell retainCount]
查看保留计数,但由于self.itemCell
已设置为nil
,我得到的显然是0!!不知道我是怎么错过的
在(3)中,单元格
保留计数为1,这是正常的(单元格由loadNibNamed:owner:options:
返回的数组保留)oops,在(3)中出错
在(3)中,我调用[self.itemCell retainCount]
查看保留计数,但由于self.itemCell
已设置为nil
,我得到的显然是0!!不知道我是怎么错过的
在(3)中,单元格
保留计数为1,这是正常的(单元格由loadNibNamed:owner:options:
)返回的数组保留)保留计数无效。别这么说。
至于你两个问题的答案,“实施细节”
只要你平衡你的保留和释放,你的工作就完成了。解释为什么retain count是任何给定的绝对值都需要访问框架本身的实现。retainCount是无用的。别这么说。
至于你两个问题的答案,“实施细节”
只要你平衡你的保留和释放,你的工作就完成了。解释为什么retain count是任何给定的绝对值都需要访问框架本身的实现