Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 加载loadNibNamed的UITableViewCell时保留计数_Iphone_Objective C_Ios_Uitableview_Nsbundle - Fatal编程技术网

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)
    self.itemCell
    retain计数为0
  • (2)
    self.itemCell
    retain计数为2
  • (3)
    self.itemCell
    retain计数为0
  • (3)
    单元格
    保留计数为1
谁能解释一下:

  • 为什么
    self.itemCell
    retain count在(2)和(3)之间从2变为0?
  • 为什么(3)中的
    单元格的保留计数等于1?
oops,在(3)中犯了一个错误

在(3)中,我调用
[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是任何给定的绝对值都需要访问框架本身的实现