我在這裏有一個相當基本的問題。我發現,很多時候我實例在viewDidLoad中模型對象:視圖控制器的方法,比如在用來填充表的元素在視圖控制器Web服務對象的情況下:iOS:何時最好在視圖控制器中取消分配模型對象?
- (void)viewDidLoad {
[super viewDidLoad];
itemService = [[BlogItemService alloc] init];
}
在哪裏我應該釋放itemService嗎?在viewDidUnload或dealloc?
此外,在viewDidLoad中分配像這樣的對象是否很常見?有沒有更適合的init類型的方法?
更新:我特別關心。假設我在dealloc中取消分配itemService。如果視圖被卸載然後重新加載,但視圖控制器未被釋放,那麼當新實例被實例化時,是否會因爲itemService的前一個實例是孤立的而導致內存泄漏?
感謝尼蒂什..我的下一個問題則是:如果出於某種原因的觀點被卸載,然後重新加載(但視圖控制器不釋放)我不會有內存泄漏,因爲itemService將在第二次調用viewDidLoad並且itemService的前一個實例變爲孤立時重新分配。 – DingoSalad 2011-05-25 10:14:15
不,不會有任何內存泄漏,因爲您每次卸載視圖時都會執行 - (void)viewDidUnload。 – Nitish 2011-05-25 10:18:32
如果您發現有用的答案,您可以接受它。 – Nitish 2011-05-25 10:25:30