在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。
知道这里发生了什么吗?
答案 0 :(得分:3)
你应该从不依赖保留计数或得出很多结论 - 至少不是复杂的第三方对象之类的复杂事物。
在这种情况下,调用代码可能会在调用委托方法之前保留表,然后释放或自动释放它。
答案 1 :(得分:3)
知道这里发生了什么吗?
是的!这里发生的事情是你在看-retainCount
,你应该忘记你曾经看过的。 wave hand 这不是您正在寻找的方法。
关注Memory Management Guidelines,你会没事的。
答案 2 :(得分:0)
我的猜测是,当这一行发生时:
[self.view addSubview:myTableView_potrait];
myTableView由其委托控制器保留为1。