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”。我看到几个类似的帖子,但没有得到我的问题的确切解决方案。由于这个泄漏我的应用程序崩溃。所以任何人都知道这一点请帮帮我
答案 0 :(得分:1)
试试这段代码。
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);
答案 1 :(得分:0)
由于这些对象是CoreFoundation对象,您应该使用CFRelease释放被占用的内存。您必须使用CFRelease(phoneNumbers); .
签出以下Link以释放ABMultiValueRef对象占用的内存。