簡體   English   中英

在這種情況下如何避免內存泄漏?

[英]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的內存管理指南 至少兩次。

對於您的具體情況:

  1. getAnObject永遠不會釋放它創建的對象。 如果要退回它,則需要先autorelease它。

  2. dealWithAnObject也不會釋放其對象。 您可以autorelease它,也可以在使用它的函數調用后release它。 確保使用它的任何東西都遵循相同的規則,這樣就可以了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM