以下内容泄漏:
想知道是否有一种方法可以重写它,使其不泄漏而不需要将
CFStringRef labelName = ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(aMultiRef, indexPath.row));
cell.textLabel.text = (NSString *)labelName;
CFRelease(labelName);
想知道是否有一种方法可以重写它,使其不泄漏而不需要将
ABMultiValueCopyLabelAtIndex(aMultiRef, indexPath.row)
分配给一个 CFStringRef
,然后在2行代码后手动 CFRelease
?当然,这并不是什么大问题……我只是好奇。
编辑: CFAutoRelease
是否可行?请看下面我的评论。
CFAutoRelease
怎么样?CFStringRef labelName = ABAddressBookCopyLocalizedLabel(CFAutoRelease(ABMultiValueCopyLabelAtIndex(aMultiRef, indexPath.row)));
可行吗? - MeltemiCFAutoRelease
;你应该将创建的任何东西的引用暂时存储在本地变量中,并在完成后使用CFRelease
进行释放。 - rpetrich