[英]CFAutoRelease() -like behavior on iOS6
我有一個創建ABRecordRef,設置其屬性並返回ref的方法。
使用CFAutoRelease時遇到崩潰,因為我需要支持iOS <7。 我將如何適當地釋放它?
-(ABRecordRef) myRecord{
ABRecordRef newRecord = ABPersonCreate();
//some setting here
return CFAutoRelease(newRecord); //how to release here?
}
對於CoreFoundation引用,實際上我不會在myRecord
方法中釋放該引用。 相反,我將定義接口,以便myRecord
的調用者擁有引用並負責釋放它。
您應該能夠為Core Foundation對象構建自己的自動發布功能,如下所示:
inline CFTypeRef MyAutorelease(CFTypeRef obj) {
id __autoreleasing result = CFBridgingRelease(obj);
return (__bridge CFTypeRef)result;
}
使用__autoreleasing
,您可以強制對象結束在自動釋放池中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.