获取通讯录-iOS9.0新框架--ContactsUI.framework(OC)

  1. 学习方式: 修改部署版本为iOS9.0, 让XCode报警告, 然后找到替换方法, 逐个进行替换

  2. ContactsUI.framework的使用

    // 1.创建选择联系人的控制器
    CNContactPickerViewController *cpvc = [[CNContactPickerViewController alloc] init];
    
    // 2.设置代理
    cpvc.delegate = self;
    
    // 3.弹出控制器
    [self presentViewController:cpvc animated:YES completion:nil];
    
    // 4.实现对应的代理方法
    
    // 如果实现了选择联系人的代理方法,则无法进入详情界面
    // - (void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact{
        //    获取姓名
        //    NSLog(@"%@---%@", contact.namePrefix, contact.familyName);
    
        //    获取电话号码
        //    NSArray*>  *phoneNumbers = contact.phoneNumbers;
        //    [phoneNumbers enumerateObjectsUsingBlock:^(CNLabeledValue * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        //        NSLog(@"%@---%@", obj.label, obj.value.stringValue);
        //    }];
    }
    
    // 选择联系人属性时调用,会进入详情界面
    - (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty{
        // 1.获取选中联系人的姓名
        NSString *firstName = contact.givenName;
        NSString *lastName = contact.familyName;
        NSLog(@"%@ %@", firstName, lastName);
    
        // 2.获取电话号码
        for (CNLabeledValue *phone in contact.phoneNumbers) {
            CNPhoneNumber *phoneNumber = phone.value;
            NSLog(@"%@ %@", phone.label, phoneNumber.stringValue);
        }
    }
    
    // 取消选中时调用
    - (void)contactPickerDidCancel:(CNContactPickerViewController *)picker
    

{
NSLog(@"取消");
}
```

你可能感兴趣的:(获取通讯录-iOS9.0新框架--ContactsUI.framework(OC))