对象的潜在泄漏 - 调用函数'ABMultiValueCopyValueAtIndex'返回具有+1保留计数的Core Foundation对象

时间:2012-12-18 06:47:00

标签: ios xcode memory-leaks automatic-ref-counting

我在使用以下地址簿代码时出现此问题(效果很好,但绝对泄漏):

ABMultiValueRef email = ABRecordCopyValue(person, property);
NSString *type = (__bridge NSString *)(ABMultiValueCopyValueAtIndex(email, 0));
self.textEmail.text = type;
CFRelease(email);

我已经使用CFRelease(电子邮件)声明修复了一个泄漏,但无法解决此问题:

enter image description here

我不能调用[type release],因为这是一个ARC项目,不允许CFRelease((CFTypeRef)类型)。我该如何发布桥接实例?

2 个答案:

答案 0 :(得分:7)

将__bridge更改为__bridge_transfer。这将使type成为引用的所有者,因此将在范围结束时自动释放。

答案 1 :(得分:2)

只需添加此方法,而不是CFRelease(电子邮件);

if(email)     {         CFRelease(电子邮件);     }