以下泄漏:我還可以如何避免泄漏此Core Foundation對象?
CFStringRef labelName = ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(aMultiRef, indexPath.row));
cell.textLabel.text = (NSString *)labelName;
CFRelease(labelName);
想知道如果有一種方式來重寫它,所以它並沒有打破&分配ABMultiValueCopyLabelAtIndex(aMultiRef, indexPath.row)
到CFStringRef
,我則需要手動CFRelease
2線後泄漏?當然,做這件事並不是什麼大事......我只是好奇而已。
編輯:CFAutoRelease
會工作嗎?看到我的評論如下
'CFAutoRelease'怎麼樣?可以'CFStringRef labelName = ABAddressBookCopyLocalizedLabel(CFAutoRelease(ABMultiValueCopyLabelAtIndex(aMultiRef,indexPath.row)));'工作? – Meltemi 2010-03-11 01:40:22
沒有'CFAutoRelease';你應該將引用存儲到臨時創建的局部變量中,並在完成時存儲'CFRelease'。 – rpetrich 2010-03-11 01:43:00
@rpetrich在iOS7 SDK中,CFAutorelease在CoreFoundation/CFBase.h – thandasoru 2014-01-05 09:02:57