我在模拟器和设备上看到了这个Zombies问题:
产生此问题的代码不能再简单了。
+ (void) testAllocateAndDeallocteAddressBook
{
ABAddressBookRef addressBookRef = ABAddressBookCreate();
NSAssert(addressBookRef != NULL, @"ABAddressBookCreate() returned NULL");
CFRelease(addressBookRef);
return;
}
我不明白为什么这个CFRelease()会导致此错误。我读过的关于此URL的所有Apple文档都表明应该调用CFRelease()来释放引用。
答案 0 :(得分:0)
也许这就是问题所在。这是关于苹果页面的讨论。
对返回的地址簿所做的更改将反映在地址簿数据库中 只有在使用ABAddressBookSave保存地址簿之后。
在iOS 6.0及更高版本中,如果调用者无权访问通讯簿数据库:
对于针对iOS 6.0及更高版本链接的应用,此函数返回NULL。 对于与以前版本的iOS链接的应用,此函数返回一个 空的只读数据库。