2012-03-19 131 views
0

可能重複:
memory management objective c - returning objects from methods保留並釋放混淆?

我有固定對象的混亂。如果我有一個會返回一個像這樣的對象的功能:

- (object) functionA { 

    NSObject* o = [[object alloc] init]; 

    return o; 
} 

返回將有保留1計數的對象....但就是您這樣做的最佳做法或應我把自動釋放第一,讓調用者保留該對象。

+0

下次請格式化您的代碼。 – 2012-03-19 22:58:28

+0

請參閱http://stackoverflow.com/questions/710288/where-are-the-best-explanations-of-memory-management-for-iphone和[官方內存管理規則](http://developer.apple。 COM /庫/ MAC /#文檔/一般/概念/ DevPedia-CocoaCore/MemoryManagement.html)。 – 2012-03-19 23:02:38

回答

3

在這種情況下,你會返回一個自動釋放對象。 NARC規則規定,任何不包含'new','alloc','retain'或'copy'的方法都應該返回一個非擁有的引用。方法functionA不包括其名稱中的這些詞。