从地址簿中仅获取移动部分记录(不是来自iphone,家庭标签等)?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从地址簿中仅获取移动部分记录(不是来自iphone,家庭标签等)?相关的知识,希望对你有一定的参考价值。
如何从ios中的地址簿中仅获取移动部分记录?
我想只向我的数组添加一条记录,该记录是从移动部分记录中提取的。
我怎么做。我收到了所有电话属性记录。但我只需要获得移动部分记录。
NSArray *allPeople = (NSArray *)ABAddressBookCopyArrayOfAllPeople(myAddressBook);
NSLog(@"allpeople%@", allPeople);
for (id record in allPeople) {
CFTypeRef phoneProperty = ABRecordCopyValue((ABRecordRef)record, kABPersonPhoneProperty);
NSArray *phones = (NSArray *)ABMultiValueCopyArrayOfAllValues(phoneProperty);
NSLog(@"phones %@",phones);
CFRelease(phoneProperty);
NSMutableDictionary *newRecord = [[NSMutableDictionary alloc] init];
NSMutableString *newPhone = [[NSMutableString alloc] init];
for (NSString *phone in phones) {
if(![newPhone isEqualToString:@""])
[newPhone appendString:@", "];
[newPhone appendString:phone];
}
答案
你可以试试这样的东西......
ABMultiValueRef phoneNumbers = ABRecordCopyValue(abPerson, kABPersonPhoneProperty);
if (phoneNumbers) {
CFIndex numberOfPhoneNumbers = ABMultiValueGetCount(phoneNumbers);
for (CFIndex i = 0; i < numberOfPhoneNumbers; i++) {
NSString *phone = (__bridge_transfer NSString *)ABMultiValueCopyValueAtIndex(phoneNumbers, i);
CFStringRef label = ABMultiValueCopyLabelAtIndex(phoneNumbers, i);
if (label) {
if (CFEqual(label, kABPersonPhoneMobileLabel)) {
primaryPhoneText.text = phone;
} else {
}
CFRelease(label);
[allPhones addObject:phone]; // allPhones is an array here.
}
}
CFRelease(phoneNumbers);
}
希望这会帮助你...
享受编码..
以上是关于从地址簿中仅获取移动部分记录(不是来自iphone,家庭标签等)?的主要内容,如果未能解决你的问题,请参考以下文章
如何从方法http Get in service Api Angular中仅获取前10条记录
是否可以在 iOS 中获取移动数据 IP 地址? (不是服务商的公网IP)