一. RHAddressBook的使用準備
- RHAddressBook(GitHub上面有下載), 是對AddressBook的一層面向對象的封裝, 他將原本CoreFoundation的各種函數(shù), 都較好的封裝為了面向對象的OC方法
- 該三方框架屬于歷史悠久了, 并且原作者已經(jīng)不對其進行更新了, 但是功能上還是一款比較好用的第三方框架
- 在此只是對這個框架做一些簡單實用的介紹, 建議大家有興趣的簡單研究一下, 然后盡量使用蘋果原生的AddressBook去封裝
二. 基本使用介紹
-
使用準備:
- 該框架是一個工程項目, 因此不只是拖入工程就可以使用的
- 首先, 將整個工程拖入項目
- 將整個工程項目, 拖入你項目所在的目錄中
- 將項目文件:
RHAddressBook.xcodeproj
拖入到你的項目中
- 添加依賴
- 在項目工程文件中: Build Phases -> Target Dependencies -> +RHAddressBook.a
- 同頁面下: Link Binary With Libraries -> +libRHAddressBook.a
- 在項目工程文件中: Build Setting -> 搜索Other Linker Flags -> 添加兩個選項(-ObjC和-all_load)
- 導入頭文件: <RHAddressBook/RHAddressBook.h>
-
使用框架獲取所有通訊錄的信息:
-
首先要請求通訊錄的訪問授權
使用方法與AddressBook基本相同
-
根據(jù)當前的授權狀態(tài)來判斷是否可以申請授權
// 請求授權 - (void)getAuthor { // 1. 判斷當前App對通訊錄訪問的授權狀態(tài) if ([RHAddressBook authorizationStatus] == RHAuthorizationStatusNotDetermined) { // 2. 創(chuàng)建通訊錄對象 RHAddressBook *addressBook = [[RHAddressBook alloc] init]; // 3. 發(fā)送授權申請, 根據(jù)回調來判斷是否授權成功 [addressBook requestAuthorizationWithCompletion:^(bool granted, NSError *error) { if (granted) { NSLog(@"授權成功"); } else { NSLog(@"授權失敗"); } }]; } }
-
獲取通訊錄所有聯(lián)系人的信息
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { // 1. 創(chuàng)建通訊錄對象 RHAddressBook *addressBook = [[RHAddressBook alloc] init]; // 2. 獲取所有聯(lián)系人信息 NSArray *allPeople = [addressBook people]; // 3. 獲取聯(lián)系人的數(shù)量 NSUInteger count = [addressBook numberOfPeople]; // 4. 遍歷聯(lián)系人信息 for (int i = 0; i < count; i++) { // 5. 創(chuàng)建單個聯(lián)系人對象 RHPerson *person = allPeople[i]; NSLog(@"%@", person.name); // 6. 創(chuàng)建多信息對象, 遍歷獲取電話號碼 RHMultiStringValue *strValue = person.phoneNumbers; for (int i = 0; i < strValue.count; i++) { NSLog(@"%@---%@", [strValue localizedLabelAtIndex:i], [strValue valueAtIndex:i]); } } }
-