簡體   English   中英

CFAutoRelease()-iOS6上的行為

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM