[英]How to avoid memory leak for this case?
情況1:
-(id)getAnObject{
Object *someObject = [[Object alloc] init];
//doing something
return someObject;
}
情況2:
-(void)dealWithAnObject{
Object *someObject = [[Object alloc] init];
[assignTheObjectToOther someObject];
}
案例1和案例2在XCode中都有一些警告,如何處理這兩個? 謝謝。
內存管理的黃金法則是:一切都需要知道它擁有哪些對象。 而且只有您才能做出決定。
我強烈建議閱讀Apple的內存管理指南 。 至少兩次。
對於您的具體情況:
getAnObject
永遠不會釋放它創建的對象。 如果要退回它,則需要先autorelease
它。
dealWithAnObject
也不會釋放其對象。 您可以autorelease
它,也可以在使用它的函數調用后release
它。 確保使用它的任何東西都遵循相同的規則,這樣就可以了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.