iOS9 通讯录 CNContact


iOS9 通讯录 CNContact 

ContactsUI:系统通讯录视图,选择联系人

 
//弹出联系人列表
CNContactPickerViewController * con = [[CNContactPickerViewController alloc]init];
[self presentViewController:con animated:YES completion:nil];

实现代理:读取联系人信息

//视图取消时 调用的方法
- (void)contactPickerDidCancel:(CNContactPickerViewController *)picker;
//选中与取消选中时调用的方法
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact;
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty;
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContacts:(NSArray<CNContact*> *)contacts;
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperties:(NSArray<CNContactProperty*> *)contactProperties;

CNPhoneNumber CNLabeledValue 读取

- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact
{
    NSArray *phoneNums = contact.phoneNumbers;
    for (CNLabeledValue *labeledValue in phoneNums) {
        // 2.1.获取电话号码的KEY
        NSString *phoneLabel = labeledValue.label;

        // 2.2.获取电话号码
        CNPhoneNumber *phoneNumer = labeledValue.value;
        NSString *phoneValue = phoneNumer.stringValue;

 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 iOS 通讯录修改备注的代码实现示例: ```obj-c // 获取联系人信息并修改备注 - (void)updateContactRemarkWithName:(NSString *)name remark:(NSString *)remark { // 创建联系人名称搜索谓词 NSPredicate *predicate = [CNContact predicateForContactsMatchingName:name]; // 创建联系人信息请求对象 NSArray *keysToFetch = @[CNContactGivenNameKey, CNContactFamilyNameKey, CNContactMiddleNameKey, CNContactNicknameKey, CNContactPhoneNumbersKey, CNContactIdentifierKey]; CNContactFetchRequest *fetchRequest = [[CNContactFetchRequest alloc] initWithKeysToFetch:keysToFetch]; fetchRequest.predicate = predicate; NSError *error; CNContactStore *store = [[CNContactStore alloc] init]; // 遍历符合条件的联系人 [store enumerateContactsWithFetchRequest:fetchRequest error:&error usingBlock:^(CNContact * _Nonnull contact, BOOL * _Nonnull stop) { // 创建可变联系人对象 CNMutableContact *mutableContact = [contact mutableCopy]; // 设置备注信息 mutableContact.note = remark; // 保存修改后的联系人信息 CNSaveRequest *request = [[CNSaveRequest alloc] init]; [request updateContact:mutableContact]; [store executeSaveRequest:request error:nil]; }]; } // 更新好友备注信息 - (void)updateFriendRemarkWithContact:(CNContact *)contact { // 获取好友列表中的好友信息 NSString *friendId = [self getFriendIdByContactId:contact.identifier]; if (friendId) { // 调用即时通讯 SDK 的接口更新好友备注信息 [self updateFriendRemarkWithFriendId:friendId remark:contact.note]; } } ``` 在这个示例中,我们首先根据姓名搜索联系人信息,然后遍历符合条件的联系人,创建可变联系人对象,并设置备注信息。最后通过 CNSaveRequest 和 CNContactStore 的 executeSaveRequest 方法保存修改后的联系人信息。 在更新好友备注信息时,我们需要根据联系人的唯一标识符获取到好友的唯一标识符,然后调用第三方即时通讯 SDK 的接口更新好友备注信息。 需要注意的是,这个示例中的代码只是一个简单的实现,具体实现方式需要根据具体的业务需求进行调整。同时,在实现中还需要考虑到错误处理和用户授权等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值