标签:style color io os ar for sp div on
1.添加 AddressBook库
- (IBAction)add:(id)sender {
ABAddressBookRequestAccessWithCompletion(ABAddressBookRef addressBookRef, ^(bool granted, CFErrorRef error) {
if (granted) {
dispatch_async(dispatch_get_main_queue(), ^{
NSArray * array=[self getContactsFromAddressBook];
});
} else {
// TODO: Show alert
}
});
}
-(NSMutableArray *)getContactsFromAddressBook
{
CFErrorRef error = NULL;
NSMutableArray * contacts = [[NSMutableArray alloc]init];
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &error);
if (addressBook) {
NSArray *allContacts = (__bridge_transfer NSArray*)ABAddressBookCopyArrayOfAllPeople(addressBook);
NSMutableArray *mutableContacts = [NSMutableArray arrayWithCapacity:allContacts.count];
NSUInteger i = 0;
for (i = 0; i<[allContacts count]; i++)
{
//THContact 一个model对象,有name和phoneNum两个属性
THContact *contact = [[THContact alloc] init];
ABRecordRef contactPerson = (__bridge ABRecordRef)allContacts[i];
contact.recordId = ABRecordGetRecordID(contactPerson);
// Get first and last names
NSString *firstName = (__bridge_transfer NSString*)ABRecordCopyValue(contactPerson, kABPersonFirstNameProperty);
NSString *lastName = (__bridge_transfer NSString*)ABRecordCopyValue(contactPerson, kABPersonLastNameProperty);
NSString * midName = (__bridge_transfer NSString*)ABRecordCopyValue(contactPerson, kABPersonMiddleNameProperty);
// Set Contact properties
contact.firstName = firstName;
contact.lastName = lastName;
contact.middleName = midName;
// Get mobile number
ABMultiValueRef phonesRef = ABRecordCopyValue(contactPerson, kABPersonPhoneProperty);
contact.phone = [self getMobilePhoneProperty:phonesRef];
if(phonesRef) {
CFRelease(phonesRef);
}
if (contact.phone.count >0) {
[mutableContacts addObject:contact];
}
}
if(addressBook) {
CFRelease(addressBook);
}
contacts = [NSMutableArray arrayWithArray:mutableContacts];
return contacts;
}
else
{
NSLog(@"Error");
}
return nil;
}
- (NSMutableArray *)getMobilePhoneProperty:(ABMultiValueRef)phonesRef
{
NSMutableArray * array = [NSMutableArray array];
for (int k = 0; k<ABMultiValueGetCount(phonesRef); k++)
{
//获取电话Label
// NSString * personPhoneLabel = (__bridge NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(phonesRef, k));
//获取該Label下的电话值
NSString * personPhone = (__bridge NSString*)ABMultiValueCopyValueAtIndex(phonesRef, k);
if (personPhone) {
[array addObject:personPhone];
}
}
return array;
}
标签:style color io os ar for sp div on
原文地址:http://blog.csdn.net/mingios/article/details/40181947