你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> [Objective

[Objective

編輯:關於IOS

使用ARC能幫我們減輕不少內存管理方面的負擔,尤其是對用慣了Java的程序員來說。但是像我這種Java基礎本身就不牢固,做了兩年的iOS已經習慣手動管理內存的半吊子,使用ARC還是經常碰壁。

最近碰到了CFObject和NSObject轉換的問題,由於ARC不能管理Core Foundation Object的生命周期,所以在Core Foundation和ARC之間,我們需要使用到__bridge,__bridge_retained和__bridge_transfer三個轉換關鍵字。

根據蘋果官方的文檔(https://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html):

__bridge只做類型轉換,但是不修改對象(內存)管理權;

__bridge_retained(也可以使用CFBridgingRetain)將Objective-C的對象轉換為Core Foundation的對象,同時將對象(內存)的管理權交給我們,後續需要使用CFRelease或者相關方法來釋放對象;

__bridge_transfer(也可以使用CFBridgingRelease)將Core Foundation的對象轉換為Objective-C的對象,同時將對象(內存)的管理權交給ARC。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved