iOS 获取通讯录的数据

来源:互联网 发布:易语言时时彩源码 编辑:程序博客网 时间:2024/05/01 00:31
//访问通讯录- (void)visitAddressBook{    CNContactStore *contactStore = [[CNContactStore alloc] init];    if ([CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts] == CNAuthorizationStatusNotDetermined) {//首次访问通讯录会调用        [contactStore requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error) {            if (error) return;            if (granted) {//允许                NSLog(@"授权访问通讯录");                [self getContactsInfo:contactStore];//访问通讯录            }else{//拒绝                NSLog(@"拒绝访问通讯录");//访问通讯录            }          }];      }else{          [self getContactsInfo:contactStore];//访问通讯录    }}//获取联系人信息- (void)getContactsInfo:(CNContactStore *)contactStore{    if ([CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts] == CNAuthorizationStatusAuthorized) {//有权限访问        NSError *error = nil;        //创建数组,必须遵守CNKeyDescriptor协议,放入相应的字符串常量来获取对应的联系人信息        NSArray <id<CNKeyDescriptor>> *keysToFetch = @[CNContactFamilyNameKey, CNContactGivenNameKey, CNContactPhoneNumbersKey, CNContactImageDataKey];        //创建获取联系人的请求        CNContactFetchRequest *fetchRequest = [[CNContactFetchRequest alloc] initWithKeysToFetch:keysToFetch];        //遍历查询        [contactStore enumerateContactsWithFetchRequest:fetchRequest error:&error usingBlock:^(CNContact * _Nonnull contact, BOOL * _Nonnull stop) {            if (!error) {                NSString *familyName = contact.familyName; //姓                NSString *givenName = contact.givenName; //名字                NSString *phoneNumber = ((CNPhoneNumber *)(contact.phoneNumbers.lastObject.value)).stringValue;//电话                NSData *imageData = contact.imageData; //头像                NSString *name = [NSString stringWithFormat:@"%@%@",familyName,givenName];                ContactModel *contactModel = [[ContactModel alloc] init];                contactModel.name = name;                contactModel.telephone = phoneNumber;                contactModel.avator = [UIImage imageWithData:imageData];                [arrContacts addObject:contactModel];            }else{                NSLog(@"error:%@", error.localizedDescription);            }        }];    }else{//无权限访问        NSLog(@"拒绝访问通讯录");    }}
0 0
原创粉丝点击