iOS - 關(guān)于橋接

作者:Mitchell 

  • 先引入一段示例代碼:
 - (void)viewDidLoad {
    [super viewDidLoad];
    //獲取通訊錄對象
    ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
    //獲取通訊錄對象匯總所有的聯(lián)系人
    CFArrayRef peopleArray = ABAddressBookCopyArrayOfAllPeople(addressBook);
    //遍歷數(shù)組
    CFIndex peopleCount = CFArrayGetCount(peopleArray);
    for (CFIndex i = 0; i<peopleCount; i++) {
        ABRecordRef person = CFArrayGetValueAtIndex(peopleArray, i);
        CFStringRef firstname = ABRecordCopyValue(person, kABPersonFirstNamePhoneticProperty);
        CFStringRef lastname = ABRecordCopyValue(person, kABPersonLastNamePhoneticProperty);
        NSString* firstName = (__bridge NSString*)firstname;
        NSString* lastName = (__bridge NSString*)lastname;        
        NSLog(@"%@%@",firstName,lastName);
        CFRelease(firstname);
        CFRelease(lastname);
    }
    CFRelease(peopleArray);
    CFRelease(addressBook);
}
  • 在 iOS 中關(guān)于 CoreFoundation 框架和 Foundation 框架的橋接有三種方式。
    • 1、***CoreFoundation-> Foundation ***坪郭。
      將 CoreFoundation 框架的對象的對象所有權(quán)交給 Foundation 框架來使用淘钟,CoreFoundation 中的對象的內(nèi)存管理還是自己來管理
(__bridge <#type#>)<#expression#>);
- 2、*** Foundation-> CoreFoundation ***。

將 Foundation 框架的對象 retain 之后轉(zhuǎn)換為 CoreFoundation 框架來使用,這樣保證了 Foundation 框架的對象被釋放后,CoreFoundation 的值仍舊能正常使用:

(__bridge_retained <#CF type#>)<#expression#>;
- 3驻售、*** CoreFoundation-> Foundation ***。

將 CoreFoundation 框架中的對象的所有權(quán)和內(nèi)存都交給Foundation 框架來管理更米,也就是說通過這種方法來轉(zhuǎn)換之后欺栗,不用寫 CFRelease() 了。

(__bridge_transfer <#Objective-C type#>)<#expression#>);
  • 以示例代碼為例:
 - (void)viewDidLoad {
    [super viewDidLoad];
    //獲取通訊錄對象
    ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
    //獲取通訊錄對象匯總所有的聯(lián)系人
    CFArrayRef peopleArray = ABAddressBookCopyArrayOfAllPeople(addressBook);
    //遍歷數(shù)組
    CFIndex peopleCount = CFArrayGetCount(peopleArray);
    for (CFIndex i = 0; i<peopleCount; i++) {
        ABRecordRef person = CFArrayGetValueAtIndex(peopleArray, i);
        CFStringRef firstname = ABRecordCopyValue(person, kABPersonFirstNamePhoneticProperty);
        CFStringRef lastname = ABRecordCopyValue(person, kABPersonLastNamePhoneticProperty);
//修改firstName的轉(zhuǎn)換方式
        NSString* firstName = (__bridge_transfer NSString*)firstname;
        NSString* lastName = (__bridge NSString*)lastname;        
        NSLog(@"%@%@",firstName,lastName);
//就不用寫這句話了
//CFRelease(firstname);
        CFRelease(lastname);
    }
    CFRelease(peopleArray);
    CFRelease(addressBook);
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末壳快,一起剝皮案震驚了整個濱河市纸巷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌眶痰,老刑警劉巖瘤旨,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異竖伯,居然都是意外死亡存哲,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門七婴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來祟偷,“玉大人,你說我怎么就攤上這事打厘⌒蕹Γ” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵户盯,是天一觀的道長嵌施。 經(jīng)常有香客問我,道長莽鸭,這世上最難降的妖魔是什么吗伤? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮硫眨,結(jié)果婚禮上足淆,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好巧号,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布族奢。 她就那樣靜靜地躺著,像睡著了一般裂逐。 火紅的嫁衣襯著肌膚如雪歹鱼。 梳的紋絲不亂的頭發(fā)上泣栈,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天卜高,我揣著相機(jī)與錄音,去河邊找鬼南片。 笑死掺涛,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的疼进。 我是一名探鬼主播薪缆,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼伞广!你這毒婦竟也來了拣帽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤嚼锄,失蹤者是張志新(化名)和其女友劉穎减拭,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體区丑,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拧粪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了沧侥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片可霎。...
    茶點(diǎn)故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宴杀,靈堂內(nèi)的尸體忽然破棺而出癣朗,到底是詐尸還是另有隱情,我是刑警寧澤旺罢,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布旷余,位于F島的核電站,受9級特大地震影響主经,放射性物質(zhì)發(fā)生泄漏荣暮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一罩驻、第九天 我趴在偏房一處隱蔽的房頂上張望穗酥。 院中可真熱鬧,春花似錦、人聲如沸砾跃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抽高。三九已至判耕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間翘骂,已是汗流浹背壁熄。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碳竟,地道東北人草丧。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像莹桅,于是被迫代替她去往敵國和親昌执。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容