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