獲取通訊錄--RHAddressBook三方框架

一. RHAddressBook的使用準(zhǔn)備

  1. RHAddressBook(GitHub上面有下載), 是對(duì)AddressBook的一層面向?qū)ο蟮姆庋b, 他將原本CoreFoundation的各種函數(shù), 都較好的封裝為了面向?qū)ο蟮腛C方法
  2. 該三方框架屬于歷史悠久了, 并且原作者已經(jīng)不對(duì)其進(jìn)行更新了, 但是功能上還是一款比較好用的第三方框架
  3. 在此只是對(duì)這個(gè)框架做一些簡單實(shí)用的介紹, 建議大家有興趣的簡單研究一下, 然后盡量使用蘋果原生的AddressBook去封裝

二. 基本使用介紹

  1. 使用準(zhǔn)備:

    1. 該框架是一個(gè)工程項(xiàng)目, 因此不只是拖入工程就可以使用的
    2. 首先, 將整個(gè)工程拖入項(xiàng)目
      • 將整個(gè)工程項(xiàng)目, 拖入你項(xiàng)目所在的目錄中
      • 將項(xiàng)目文件: RHAddressBook.xcodeproj拖入到你的項(xiàng)目中
    3. 添加依賴
      • 在項(xiàng)目工程文件中: Build Phases -> Target Dependencies -> +RHAddressBook.a
      • 同頁面下: Link Binary With Libraries -> +libRHAddressBook.a
      • 在項(xiàng)目工程文件中: Build Setting -> 搜索Other Linker Flags -> 添加兩個(gè)選項(xiàng)(-ObjC和-all_load)
      • 導(dǎo)入頭文件: <RHAddressBook/RHAddressBook.h>
  2. 使用框架獲取所有通訊錄的信息:

    1. 首先要請求通訊錄的訪問授權(quán)

      • 使用方法與AddressBook基本相同

      • 根據(jù)當(dāng)前的授權(quán)狀態(tài)來判斷是否可以申請授權(quán)

          // 請求授權(quán)
          - (void)getAuthor {
              // 1. 判斷當(dāng)前App對(duì)通訊錄訪問的授權(quán)狀態(tài)
              if ([RHAddressBook authorizationStatus] == RHAuthorizationStatusNotDetermined) {
                  // 2. 創(chuàng)建通訊錄對(duì)象
                  RHAddressBook *addressBook = [[RHAddressBook alloc] init];
                  // 3. 發(fā)送授權(quán)申請, 根據(jù)回調(diào)來判斷是否授權(quán)成功
                  [addressBook requestAuthorizationWithCompletion:^(bool granted, NSError *error) {
                      if (granted) {
                          NSLog(@"授權(quán)成功");
                      } else {
                          NSLog(@"授權(quán)失敗");
                      }
                  }];
              }
          }
        
    2. 獲取通訊錄所有聯(lián)系人的信息

       - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
           
           // 1. 創(chuàng)建通訊錄對(duì)象
           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)建單個(gè)聯(lián)系人對(duì)象
               RHPerson *person = allPeople[i];
               NSLog(@"%@", person.name);
               
               // 6. 創(chuàng)建多信息對(duì)象, 遍歷獲取電話號(hào)碼
               RHMultiStringValue *strValue = person.phoneNumbers;
               for (int i = 0; i < strValue.count; i++) {
                   NSLog(@"%@---%@", [strValue localizedLabelAtIndex:i], [strValue valueAtIndex:i]);
               }
           }
       }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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