2010-12-22 67 views
1

内部ViewWillAppear我正在添加一个UITableView控制器的视图。UITableView保留计数

UITableView *myTableView_portrait = [[UITableView alloc] initWithFrame:CGRectMake(0, 102, 768, 857) style:UITableViewStylePlain]; 
[myTableView_portrait setTag:100]; 
[myTableView_portrait setDelegate:self]; 
[myTableView_portrait setDataSource:self]; 

[self.view addSubview:myTableView_potrait]; 
[myTableView_portrait release]; 

打印保持数此表视图内viewWillAppear中返回1,但里面tableView: cellForRowAtIndexPath:回报2.即使里面tableView: numberOfRowsInSection:保留计数为1

任何想法是怎么回事?

回答

3

任何想法这里发生了什么?

是的!这里发生的是你在看-retainCount,你应该忘记你曾经看到过。 海浪手这不是你要找的方法。

按照Memory Management Guidelines,你会没事的。

0

我的猜测是,当这个线路发生的情况:

[self.view addSubview:myTableView_potrait]; 

myTableView由1保留其代表控制器。

+0

但是,当我在这些行后面打印myTableView_potrait保留计数[self.view addSubview:myTableView_portrait]; [myTableView_portrait release]; 保留计数仍然是1 – random 2010-12-22 06:29:55

3

你应该从来没有依赖保留计数或得出很多结论 - 至少不是复杂的事情,如复杂的第三方对象。

在这种情况下,调用代码可能会在调用委托方法之前保留该表,然后释放或自动释放它。