1
A
回答
2
那麼,如果被示出的圖,然後隱藏,它會收到兩者initWithNibName
然後release
;所以你應該做的是這樣的:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
yourArray = [[NSArray alloc] init];
}
- (void) dealloc
{
[yourArray release];
[super dealloc];
}
無論視圖控制器的生命的短暫,它仍然會在收到被解僱的釋放,這反過來將最終導致dealloc
被調用。
2
它是正確的,只有確保將它釋放到您的dealloc。確保當你的Alloc INITING你不使用你的制定者,而不是你要的Alloc初始化實例變量直接:
_myArray = [[NSArray alloc]init];
,如果你想只通過屬性方法去那麼做這樣的事情:
self.myArray = [NSArray array];
,並再次,不要忘了釋放它在你的dealloc:
-(void)dealloc
{
[_myArray release];
[super dealloc];
}
相關問題
- 1. 內存分配iphone
- 2. iphone內存分配問題
- 3. SpringBoard內存分配(iPhone/iPad)
- 4. Iphone:在哪裏爲dataSource分配內存?
- 5. libxml在iphone上分配太多內存
- 6. 查找內存分配在iPhone SDK
- 7. 按內容類型在iPhone中分配內存?
- 8. iPhone內存泄露(很多分配)
- 9. iphone內存分配和泄漏
- 10. iPhone - 內存分配略有增加
- 11. 在C++中用void *分配內存結構內存分配
- 12. 在JavaScript中分配內存
- 13. 在php中分配內存
- 14. 在iPhone中使用sendto() - 內存分配問題
- 15. 在iPhone SDK中獲得內存分配ActivityIndicator
- 16. 內存分配
- 17. 內存分配
- 18. 內存分配
- 19. 內存分配
- 20. 內存分配
- 21. 內存分配
- 22. 內存分配
- 23. 分配內存
- 24. 內存分配
- 25. 內存分配
- 26. 內存分配
- 27. 內存分配
- 28. 內存分配
- 29. 在linux內核中選擇內存分配api頻繁地分配大內存
- 30. 在內存分配分析過程中內存分配不斷增加
爲什麼should't用我的二傳手?謝謝 – xger86x
因爲如果你有一個「保留」(你可能有)或「複製」屬性,那麼如果你在分配initing時使用setter,那麼這個對象將被保留兩次:1.在alloc方法。 2.在你的二傳手。這會導致你的記憶泄漏,因爲你只調用一次「釋放」。 (並且你應該只調用一次釋放。)所以,如果你想使用setter,獲得一個autoreleased對象。 –