ABMultiValueRef phoneNumbers = ABRecordCopyValue((__bridge ABRecordRef)([arrTemp1 objectAtIndex:i]),
kABPersonPhoneProperty);
if (ABMultiValueGetCount(phoneNumbers) > 0) {
phone = (__bridge_transfer NSString*)
ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
} else
{
phone = @"[None]";
}在这行代码之后,我得到了“对象泄漏:分配并存储到'phoneNumber‘中的对象稍后在此执行路径中不会被引用,并且保留计数为+1”。我看到了几个类似的帖子,但没有得到我的问题的确切答案。由于这个泄漏,我的应用程序崩溃了。所以任何知道这一点的人请帮助我
发布于 2013-11-11 15:10:28
试试这段代码。
ABMultiValueRef phoneNumbers = ABRecordCopyValue((__bridge ABRecordRef)([arrTemp1 objectAtIndex:i]),kABPersonPhoneProperty);
if (ABMultiValueGetCount(phoneNumbers) > 0) {
phone = (__bridge_transfer NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
} else {
phone = @"[None]";
}
CFRelease(phoneNumbers);发布于 2013-11-11 15:54:42
因为这些对象是CoreFoundation对象,所以您应该使用CFRelease来释放被占用的内存。您必须使用CFRelease(phoneNumbers); . Checkout以下Link来释放ABMultiValueRef对象占用的内存。
https://stackoverflow.com/questions/19900416
复制相似问题