你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS 獲取通訊錄

iOS 獲取通訊錄

編輯:IOS開發綜合

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

{

//獲取電話Label

// NSString * personPhoneLabel = (__bridge NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(phonesRef, k));

//獲取該Label下的電話值

NSString * personPhone = (__bridge NSString*)ABMultiValueCopyValueAtIndex(phonesRef, k);

if (personPhone) {

[array addObject:personPhone];

}

}

return array;

}



  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved