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”。我看到了几篇类似的文章,但没有得到确切的答案。由于此泄漏,我的应用程序崩溃了。所以有人知道这请帮我

最佳答案

试试这个代码。

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);

关于ios - 如何解决地址簿中泄漏的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19900416/

10-08 21:57