2012-12-18 68 views
1

我遇到了以下地址簿代碼(這很好,但肯定會泄漏)的這個問題:對象的潛在泄漏 - 調用函數'ABMultiValueCopyValueAtIndex'返回一個+1保留計數的Core Foundation對象

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

我已經固定一個泄漏與CFRelease(電子郵件)聲明,但無法修復這個問題:因爲這是一個ARC項目

enter image description here

我不能叫[類型發佈]和CFRelease((CFTypeRef)類型)是不允許的。我如何釋放橋接實例?

回答

7

將__bridge更改爲__bridge_transfer。這將使類型成爲引用的所有者,因此將在範圍結束時自動釋放。

2

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

if(email) { CFRelease(email); }

相關問題