读取通讯录

注意:写的不全,字数限制:我就卸载了新浪博客:http://blog.sina.com.cn/s/blog_928504cc0102x1ke.html(第一部分)



+ (NSMutableArray *)getIphoneAddressBookWithSpecailAgSinglePersonModel;


// 返回PersonModel的数组

+ (NSMutableArray *)getIphoneAddressBookWithSpecailAgSinglePersonModel {

NSMutableArray *_all_local = [[NSMutableArray alloc] initWithCapacity:0];

ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);

if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {

ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error){

CFErrorRef *error1 = NULL;

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error1);

CFIndex numberOfPeople = ABAddressBookGetPersonCount(addressBook);

CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);

for ( int i = 0; i < numberOfPeople; i++){

ABRecordRef person = CFArrayGetValueAtIndex(people, i);

NSString *firstName = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonFirstNameProperty));

NSString *lastName = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonLastNameProperty));

//读取middlename

NSString *middlename = (__bridge NSString*)ABRecordCopyValue(person, kABPersonMiddleNameProperty);

//读取prefix前缀

NSString *prefix = (__bridge NSString*)ABRecordCopyValue(person, kABPersonPrefixProperty);

//读取suffix后缀

NSString *suffix = (__bridge NSString*)ABRecordCopyValue(person, kABPersonSuffixProperty);

//读取nickname呢称

NSString *nickname = (__bridge NSString*)ABRecordCopyValue(person, kABPersonNicknameProperty);

//读取firstname拼音音标

NSString *firstnamePhonetic = (__bridge NSString*)ABRecordCopyValue(person, kABPersonFirstNamePhoneticProperty);

//读取lastname拼音音标

NSString *lastnamePhonetic = (__bridge NSString*)ABRecordCopyValue(person, kABPersonLastNamePhoneticProperty);

//读取middlename拼音音标

NSString *middlenamePhonetic = (__bridge NSString*)ABRecordCopyValue(person, kABPersonMiddleNamePhoneticProperty);

//读取organization公司

NSString *organization = (__bridge NSString*)ABRecordCopyValue(person, kABPersonOrganizationProperty);

//读取jobtitle工作

NSString *jobtitle = (__bridge NSString*)ABRecordCopyValue(person, kABPersonJobTitleProperty);

//读取department部门

NSString *department = (__bridge NSString*)ABRecordCopyValue(person, kABPersonDepartmentProperty);

//读取birthday生日

NSDate *birthday = (__bridge NSDate*)ABRecordCopyValue(person, kABPersonBirthdayProperty);

//读取note备忘录

NSString *note = (__bridge NSString*)ABRecordCopyValue(person, kABPersonNoteProperty);

//第一次添加该条记录的时间

NSString *firstknow = (__bridge NSString*)ABRecordCopyValue(person, kABPersonCreationDateProperty);

NSLog(@"第一次添加该条记录的时间%@\n",firstknow);

//最后一次修改該条记录的时间

NSString *lastknow = (__bridge NSString*)ABRecordCopyValue(person, kABPersonModificationDateProperty);

NSLog(@"最后一次修改該条记录的时间%@\n",lastknow);

//获取email多值

ABMultiValueRef email = ABRecordCopyValue(person, kABPersonEmailProperty);

int emailcount = ABMultiValueGetCount(email);

for (int x = 0; x < emailcount; x++)

{

//获取email Label

NSString* emailLabel = (__bridge NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(email, x));

//获取email值

NSString* emailContent = (__bridge NSString*)ABMultiValueCopyValueAtIndex(email, x);

}

//读取地址多值

ABMultiValueRef address = ABRecordCopyValue(person, kABPersonAddressProperty);

int count = ABMultiValueGetCount(address);

for(int j = 0; j < count; j++)

{

//获取地址Label

NSString* addressLabel = (__bridge NSString*)ABMultiValueCopyLabelAtIndex(address, j);

//获取該label下的地址6属性

NSDictionary* personaddress =(__bridge NSDictionary*) ABMultiValueCopyValueAtIndex(address, j);

NSString* country = [personaddress valueForKey:(NSString *)kABPersonAddressCountryKey];

NSString* city = [personaddress valueForKey:(NSString *)kABPersonAddressCityKey];

NSString* state = [personaddress valueForKey:(NSString *)kABPersonAddressStateKey];

NSString* street = [personaddress valueForKey:(NSString *)kABPersonAddressStreetKey];

NSString* zip = [personaddress valueForKey:(NSString *)kABPersonAddressZIPKey];

NSString* coutntrycode = [personaddress valueForKey:(NSString *)kABPersonAddressCountryCodeKey];

}

//获取dates多值

ABMultiValueRef dates = ABRecordCopyValue(person, kABPersonDateProperty);

int datescount = ABMultiValueGetCount(dates);

for (int y = 0; y < datescount; y++)

{

//获取dates Label

NSString* datesLabel = (__bridge NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(dates, y));

//获取dates值

NSString* datesContent = (__bridge NSString*)ABMultiValueCopyValueAtIndex(dates, y);

}

//获取kind值

CFNumberRef recordType = ABRecordCopyValue(person, kABPersonKindProperty);

if (recordType == kABPersonKindOrganization) {

// it's a company

NSLog(@"it's a company\n");

} else {

// it's a person, resource, or room

NSLog(@"it's a person, resource, or room\n");

}

//获取IM多值

ABMultiValueRef instantMessage = ABRecordCopyValue(person, kABPersonInstantMessageProperty);

for (int l = 1; l < ABMultiValueGetCount(instantMessage); l++)

{

//获取IM Label

NSString* instantMessageLabel = (__bridge NSString*)ABMultiValueCopyLabelAtIndex(instantMessage, l);

//获取該label下的2属性

NSDictionary* instantMessageContent =(__bridge NSDictionary*) ABMultiValueCopyValueAtIndex(instantMessage, l);

NSString* username = [instantMessageContent valueForKey:(NSString *)kABPersonInstantMessageUsernameKey];

NSString* service = [instantMessageContent valueForKey:(NSString *)kABPersonInstantMessageServiceKey];

}

NSMutableArray *phoneArr = [[NSMutableArray alloc] initWithCapacity:0];

//读取电话多值

ABMultiValueRef phone = ABRecordCopyValue(person, kABPersonPhoneProperty);

for (int k = 0; k

你可能感兴趣的:(读取通讯录)