ABAddressBookRef内存泄漏

时间:2013-09-13 00:05:34

标签: iphone ios abaddressbook

我使用以下代码在我的应用程序中初始化地址簿: -

@property(nonatomic,assign) ABAddressBookRef addressBookRef;
self.addressBookRef=ABAddressBookCreateWithOptions(NULL, NULL);

然而,xcode分析器给我以下信息: -

call to function 'ABAddressBookCreateWithOptions' returns a Core Foundation Object with a +1 retain count

现在,据我所知,我可以通过以下两种方法“删除”上述警告: -

  • 使用addressBookRef
  • 发布CFRelease
  • 而不是self.addressBookRef,请在第二个语句中使用_addressBookRef

然而,哪一个会更好,为什么?

1 个答案:

答案 0 :(得分:2)

名称中包含create的所有CoreFoundation API都会返回一个带有+1保留计数的CF对象。完成后,您需要release新的CF对象。命名示例:

CFRelease(self.addressBookRef);

我强烈建议您也阅读此答案:iOS 6 Address Book not working?