1

我在使用以下地址簿代码时遇到了这个问题(效果很好,但肯定会泄漏):

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) 是不允许的。如何释放桥接实例?

4

2 回答 2

7

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

于 2012-12-18T07:09:44.650 回答
2

只需添加此方法,而不是 CFRelease(email);

如果(电子邮件){ CFRelease(电子邮件);}

于 2014-09-22T10:18:10.197 回答