iOS 通過AddressBookUI來獲取通訊錄

  • (void)viewDidLoad {
    [super viewDidLoad];

}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
ABPeoplePickerNavigationController *pickController = [[ABPeoplePickerNavigationController alloc]init];

pickController.peoplePickerDelegate = self;
[self presentViewController:pickController animated:YES completion:^{
    
}];

}
//選中一個聯系人的代理方法(實現這個方法后就不會進入聯系人的詳細界面)

  • (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker didSelectPerson:(ABRecordRef)person{

    NSLog(@"====%@",person);
    CFStringRef firstName = ABRecordCopyValue(person, kABPersonFirstNameProperty);
    CFStringRef lastName = ABRecordCopyValue(person, kABPersonLastNameProperty);

    // 這樣的橋接方式將cf的轉為foundtion后就不用再管理內存了。
    NSString first = (__bridge_transfer NSString)(firstName);
    NSLog(@"%@",first);

// 獲取聯系人的電話號碼(獲取到的是個數組,而且數組里面存放的好像是字典)
ABMultiValueRef phone = ABRecordCopyValue(person, kABPersonPhoneProperty);

CFIndex count = ABMultiValueGetCount(phone);


for (int i = 0 ; i<count; i++) {

// 獲取手機號碼的的名字
NSString phoneName= (__bridge_transfer NSString)(ABMultiValueCopyLabelAtIndex(phone, i));
// 獲取手機號碼
NSString phoneVaule = (__bridge_transfer NSString)(ABMultiValueCopyValueAtIndex(phone, i));
NSLog(@"==%@,%@",phoneName,phoneVaule);
}

CFRelease(phone);

}
//選中一個聯系人的一個屬性時的方法候調用的方法(如果實現了這個方法選擇聯系人的屬性就會跳出這個頁面,自動退出當前的控制器)。

  • (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker didSelectPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{

    // 在這里面也是對person 這個對像進行操作和,上面的代理操作類似

}
// 點擊取消按鈕會執行的方法
-(void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker{
NSLog(@"你點擊了取消按鈕");
}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 內容概述 iOS給我們提供了四個框架來供我們使用:iOS9之前,有AddressBookUI.framewor...
    leesum閱讀 1,214評論 0 3
  • 在ios中,有兩個框架可以訪問用戶的通訊錄 AddressBookUI.framework提供了聯系人列表界面, ...
    Manba_小洛閱讀 991評論 4 12
  • 如何訪問用戶的通訊錄 在iOS中,有2個框架可以訪問用戶的通訊錄 AddressBookUI.framework ...
    JonesCxy閱讀 794評論 0 2
  • 1.創建選擇聯系人的界面 ABPeoplePickerNavigationController*ppad = [[...
    archyly閱讀 505評論 0 0
  • 《非暴力溝通》第十章講充分表達憤怒,并不是傳統中講的忽視和壓抑憤怒。而是教導我們深入地了解憤怒,充分表達內心的渴望...
    兩香蕉媽媽閱讀 208評論 0 1