之前兩篇文章中說(shuō)了AddressBookUI.framework 和 AddressBook.framework這兩個(gè)框架喳整,這兩個(gè)框架都是iOS9之前的齐媒,iOS9之后出現(xiàn)了一個(gè)新的框架ContactsUI每篷。同之前的相比這個(gè)框架使用起來(lái)非常簡(jiǎn)單篇裁,簡(jiǎn)單的不能再簡(jiǎn)單菲饼。但是注意,再使用前要導(dǎo)入這個(gè)框架:<ContactsUI/ContactsUI.h>远剩; 遵守這個(gè)協(xié)議:<CNContactPickerDelegate> 扣溺。直接上代碼:
//ContactsUI.framework中
CNContactPickerViewController *contactVC = [CNContactPickerViewController new];
contactVC.delegate = self;
[self presentViewController:contactVC animated:YES completion:^{
}];
相關(guān)代理方法,代理方法作用加代碼注釋瓜晤。
#pragma mark - CNContactViewControllerDelegate代理
//選擇一個(gè)聯(lián)系人的時(shí)候調(diào)用
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact{
//1.姓名
NSLog(@"%@-%@",contact.givenName,contact.familyName);
//2.獲取電話(huà) --->泛型锥余,會(huì)在遍歷數(shù)組幫很大忙。
for (CNLabeledValue *labelValue in contact.phoneNumbers) {
NSLog(@"電話(huà)標(biāo)簽: %@",labelValue.label);
CNPhoneNumber *phoneNumber = labelValue.value;
NSLog(@"電話(huà)號(hào)碼: %@",phoneNumber.stringValue);
}
}
//實(shí)現(xiàn)此方法就可以選擇多個(gè)聯(lián)系人痢掠,如果不實(shí)現(xiàn)則是單選聯(lián)系人
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContacts:(NSArray<CNContact *> *)contacts{
for (CNContact *contact in contacts) {
//1.姓名
NSLog(@"%@-%@",contact.givenName,contact.familyName);
//2.獲取電話(huà) --->泛型驱犹,會(huì)在遍歷數(shù)組幫很大忙。
for (CNLabeledValue *labelValue in contact.phoneNumbers) {
NSLog(@"電話(huà)標(biāo)簽: %@",labelValue.label);
CNPhoneNumber *phoneNumber = labelValue.value;
NSLog(@"電話(huà)號(hào)碼: %@",phoneNumber.stringValue);
}
NSLog(@"\n\n");
}
}
//選擇聯(lián)系人屬性
//- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty{
//
//}
//- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperties:(NSArray<CNContactProperty *> *)contactProperties{
//
//}
//取消選擇聯(lián)系人的時(shí)候調(diào)用
- (void)contactPickerDidCancel:(CNContactPickerViewController *)picker{
}
接著三篇文章吧足画,也算是相對(duì)比較系統(tǒng)的整理了下通訊錄開(kāi)發(fā)相關(guān)的重要知識(shí)點(diǎn)雄驹。雖然截止目前實(shí)際開(kāi)發(fā)中還沒(méi)用到,但是還是很有必要學(xué)習(xí)的淹辞。學(xué)無(wú)止境嗎医舆!