2010-12-22 99 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

你應該從來沒有依賴保留計數或得出很多結論 - 至少不是複雜的事情,如複雜的第三方對象。

在這種情況下,調用代碼可能會在調用委託方法之前保留該表,然後釋放或自動釋放它。