iOS 通訊錄基礎

來源:互聯網
上載者:User

標籤:ios   通訊錄   

iOS  6 之後應用訪問通訊錄需要獲得使用者授權,並且只授權一次,即使卸載了之後再安裝,也不用再次授權;

開發通訊錄應用需要兩個架構:

1.ABAddressBook    主要用於提供訪問通訊錄中的記錄和屬性等API,使用他需要自己構建UI。

2.ABAddressBookUI   這個架構給我們提供了4個視圖控制器以及相應的委託協議,他們已經提供了UI介面


ABAddressBook 架構中常用的類“()”前面的類為Foundation中的類,()內的是Core Foundation架構中類

ABAddressBook(ABAddressBookRef)封裝訪問通訊錄介面;

ABPerson (ABPersonRef)封裝通訊錄個人資訊資料,是資料庫的一條的記錄;

ABGroup (ABGroupRef)封裝通訊錄資訊資料,一個組包含多個人的資訊,一個人的資訊可以屬於多個組;

ABRecord (ABRecordRef) 封裝資料庫中得一條記錄,記錄由屬性群組成;


ABAddressBookUI架構中的視圖控制器

ABPeoplePickerNavigationController 他是從資料庫中選取連絡人導航控制器,對應的委託協議為ABPeoplePickerNavigationControllerDelegate

ABPersonViewController 查看並編輯單個連絡人的資訊,對應的委託協議為ABPersonViewControllerDelegate

ABNewPersonViewController 建立新連絡人資訊,對應的委託協議為ABNewPersonViewControllerDelegate

ABUnknowPersonViewController 呈現記錄部分資訊,這些資訊可以建立新連絡人的資訊,或者添加到已存在的連絡人,對應的委託協議為ABUnknowPwesonViewControllerDelegate




在使用ABAddressBook時我們使用的是Core Foundation架構; Core Foundation(c語言) 架構和Foundation(o-c)架構是相同的功能介面,如果要混合使用需要兩個架構之間的“無開銷橋接”;

這裡用NSAArray來舉個例子:

將Core Foundation類型轉換為Foundation類型

CFArrayRef x;    //第一種轉換方式    NSArray *array = (__bridge NSArray *)x;    //第二種轉換方式    array = CFBridgingRelease(x);

使用第一種轉換方式時不轉換對象所有權,只是強制轉換。需要手動釋放對象;

使用第二種轉換方式時轉換對象所有權,並把對象所有權轉讓ARC ,不需要手動釋放

將Foundation類型轉換為Core Foundation類型

NSArray * array = nil;    //第一種方式    CFArrayRef arrayRef = (__bridge CFArrayRef)array;    //第二種方式    arrayRef = CFBridgingRetain(array);

這兩種方式同樣是第一種不轉換對象所有權,還是Foundation對象所以自動釋放 。

第二種轉換對象所有權需要手動釋放對象(CFRelease(arrayRef);)




iOS 通訊錄基礎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.