我在以下通讯录代码中遇到了这个问题(效果很好,但肯定会泄漏):
ABMultiValueRef email = ABRecordCopyValue(person, property);
NSString *type = (__bridge NSString *)(ABMultiValueCopyValueAtIndex(email, 0));
self.textEmail.text = type;
CFRelease(email);
我已经使用CFRelease(email)语句修复了一个泄漏,但无法解决此问题:
我不能调用[type release],因为这是一个ARC项目,并且不允许CFRelease((CFTypeRef)type)。如何释放桥接实例?
最佳答案
将__bridge更改为__bridge_transfer。这将使type成为引用的所有者,因此将在范围结束时自动释放。
关于ios - 对象的潜在泄漏-调用函数“ABMultiValueCopyValueAtIndex”将返回保留计数为+1的Core Foundation对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13927724/