2010-09-03 47 views

回答

3

你应该释放或autorelease两者。对于NSString,任何时候使用alloc + init创建一个对象的时候,你都将它的引用计数设置为1.你负责在完成时释放它或者立即自动释放它,以允许它在运行循环结束时释放。

对于CFObject,ABMultiValueCopyArrayOfAllValues返回一个CFArray,它是NSArray的“免费桥接”(意味着它可以与NSArray交替使用)。任何时候拷贝完成 - 就像方法名所暗示的那样,你有责任释放返回的对象。同样,您可以在完成之后立即释放它,或者立即自动释放它,以便在运行循环完成时释放它。

+2

不要担心引用次数。如果通过显式分配('alloc' /'Create')或通过复制另一个对象来创建对象,则您拥有它。无论你拥有什么,你都必须释放。内存管理编程指南最近被重写了这些行:http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt在这种情况下,CF版本也是相关的:http://开发人员。 apple.com/mac/library/documentation/CoreFoundation/Conceptual/CFMemoryMgmt/ – 2010-09-03 16:56:38

1

记住你的内存管理的NARC。

新建,分配,保留,复制。这些是创建您负责释放的对象的方法。除了这四种方法之外,你得到的任何新对象都是自动释放的,你不必显式处理它的释放。

相关问题