__bridge,__bridge_retained,__bridge_transfer
最近遇到類型轉(zhuǎn)換需要添加__bridge等開始不是很理解,后面查詢資料才知道在CFObject 與 NSObject 之間轉(zhuǎn)換時,ARC是不能管理Core Foundation object的生命周期。
在CFObject 與 NSObject 之間轉(zhuǎn)換時,需要用到__bridge,__bridge_retained,__bridge_transfer等關(guān)鍵字。下面簡單介紹下這三個關(guān)鍵字:
__bridge只做類型轉(zhuǎn)換,但是不修改對象(內(nèi)存)管理權(quán);
__bridge_retained(也可以使用CFBridgingRetain)將Objective-C的對象轉(zhuǎn)換為 ?Foundation的對象,同時將對象(內(nèi)存)的管理權(quán)交給我們,后續(xù)需要使用CFRelease或者相關(guān)方法來釋放對象;
__bridge_transfer(也可以使用CFBridgingRelease)將Core Foundation的對象轉(zhuǎn)換為Objective-C的對象,同時將對象(內(nèi)存)的管理權(quán)交給ARC。
轉(zhuǎn)載于:https://www.cnblogs.com/simple-life-no1/p/4347380.html
總結(jié)
以上是生活随笔為你收集整理的__bridge,__bridge_retained,__bridge_transfer的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 硬盘数据恢复经验(转)
- 下一篇: iOS MBProgressHUD 之