UITableView保留计数

时间:2010-12-22 06:25:22

标签: iphone uitableview memory

在ViewWillAppear内部我将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 个答案:

答案 0 :(得分:3)

你应该从不依赖保留计数或得出很多结论 - 至少不是复杂的第三方对象之类的复杂事物。

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

答案 1 :(得分:3)

  

知道这里发生了什么吗?

是的!这里发生的事情是你在看-retainCount,你应该忘记你曾经看过的。 wave hand 这不是您正在寻找的方法。

关注Memory Management Guidelines,你会没事的。

答案 2 :(得分:0)

我的猜测是,当这一行发生时:

[self.view addSubview:myTableView_potrait];

myTableView由其委托控制器保留为1。