2012-03-19 91 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不包括其名称中的这些词。