ios 简书 获取通讯录信息_iOS-授权获取通讯录

这篇博客详细介绍了如何在iOS中获取用户通讯录的授权,并演示了如何获取并处理联系人的姓名和电话号码,最后将数据转换为JSON字符串进行上传。
摘要由CSDN通过智能技术生成

- (void)getContact{

CNAuthorizationStatus authorizationStatus = [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts];

if(authorizationStatus ==CNAuthorizationStatusAuthorized) {

// 获取指定的字段,并不是要获取所有字段,需要指定具体的字段

NSArray*keysToFetch =@[CNContactGivenNameKey,CNContactFamilyNameKey,CNContactPhoneNumbersKey];

CNContactFetchRequest*fetchRequest = [[CNContactFetchRequest alloc]initWithKeysToFetch:keysToFetch];

CNContactStore*contactStore = [[CNContactStore alloc]init];

//创建一个保存通讯录的数组

NSMutableArray *contactArr = [NSMutableArray array];

[contactStore enumerateContactsWithFetchRequest:fetchRequest error:nil usingBlock:^(CNContact*_Nonnull contact,BOOL*_Nonnull stop) {

NSLog(@"-------------------------------------------------------");

NSString*givenName = contact.givenName;

NSString*familyName = contact.familyName;

NSLog(@"givenName=%@, familyName=%@", givenName, familyName);

NSArray*phoneNumbers = contact.phoneNumbers;

for(CNLabeledValue*labelValue in phoneNumbers) {

NSString*label = labelValue.label;

CNPhoneNumber*phoneNumber = labelValue.value;

NSDictionary*contact =@{@"phone":phoneNumber.stringValue,@"user":FORMAT(@"%@%@",familyName,givenName)};

[contactArr addObject:contact];

NSLog(@"label=%@, phone=%@", label, phoneNumber.stringValue);

}

//*stop = YES;// 停止循环,相当于break;

}];

_contactArr= contactArr;

NSError*error;

NSData*jsonData = [NSJSONSerialization dataWithJSONObject:contactArr options:NSJSONWritingPrettyPrinted error:&error];//此处data参数是我上面提到的key为"data"的数组

NSString*jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];

_jsonString= jsonString;

NSLog(@"jsonString====%@",jsonString);

[self postContactTo]; //6.上传通讯录

}else{

NSLog(@"====通讯录没有授权====");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值