【问题标题】:potential leak of an object stored into address book存储在地址簿中的对象的潜在泄漏
【发布时间】:2013-04-16 06:29:38
【问题描述】:

我遇到了存储在通讯簿中的对象的潜在泄漏问题,如何解决它。

我在本地创建地址簿,然后将ArrayofAllpeople 复制到people1 数组。 people1 数组在方法之外使用。那么我应该在哪里发布addressbookref。请提出建议。

这是我的代码

 ABAddressBookRef addressBook = ABAddressBookCreate();
    people1 = (__bridge NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);

【问题讨论】:

  • 传递给外部方法后,是否保留了该对象?

标签: iphone objective-c memory-management ios6 core-foundation


【解决方案1】:

使用CFRelease() 方法。

 ABAddressBookRef addressBook = ABAddressBookCreate();
 people1 = (__bridge NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
  CFRelease(addressBook);

我认为这对你会有帮助。

【讨论】:

  • 在放置第 3 行后它会因为在方法之外使用 people1 数组而崩溃。 ABMultiValueRef multi = ABRecordCopyValue(person, kABPersonPhoneProperty);未创建多对象。
猜你喜欢
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 2015-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2012-03-06
相关资源
最近更新 更多