iphone-common-codes-ccteam源代码 CCAddressBook.m
2011-12-30 10:53
387 查看
View Code
googlecode链接地址(会有更新):http://code.google.com/p/iphone-common-codes-ccteam/source/browse/trunk/CCFC/files/CCAddressBook.m
// // CCAddressBook.m // CCFC // // Created by xichen on 11-12-16. // Copyright 2011年 ccteam. All rights reserved. // #import "CCAddressBook.h" @implementation CCAddressBook - (id)init { self = [super init]; if(self) { ABAddressBookRef addressBook = ABAddressBookCreate(); _abAllPeople = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook); _abGroups = (NSArray *)ABAddressBookCopyArrayOfAllGroups(addressBook); } return self; } - (void)dealloc { [_abAllPeople release]; [_abGroups release]; [super dealloc]; } - (int)getABRecordCount { return [_abAllPeople count]; } - (int)getABGroupCount { return [_abGroups count]; } - (ABRecordRef)getABRecordRefByIndex:(int)index { return [_abAllPeople objectAtIndex:index]; } - (ABRecordID)getABRecordIDByIndex:(int)index { return ABRecordGetRecordID([self getABRecordRefByIndex:index]); } // 获得通讯录联系人的全名 // 和getFullNameByRecord略有不同,例如,如果通讯录的姓保存的是"陈",名保存的是"曦",那么此得到的 // 是 "陈 曦", getFullNameByRecord得到的是"陈曦" - (NSString *)getCompositeNameByIndex:(int)index { return [(NSString *)ABRecordCopyCompositeName([self getABRecordRefByIndex:index]) autorelease]; } - (NSMutableArray *)getPhoneNumberArrByIndex:(int)index { ABRecordRef ref = [self getABRecordRefByIndex:index]; // 获取号码数组 ABMultiValueRef tempArr = (ABMultiValueRef)ABRecordCopyValue(ref, kABPersonPhoneProperty); if(!tempArr) { return nil; } NSMutableArray *phoneArr = [NSMutableArray new]; for(int i = 0; i < ABMultiValueGetCount(tempArr); ++i) { NSString *phoneNo = (NSString *)ABMultiValueCopyValueAtIndex(tempArr, i); [phoneArr addObject:phoneNo]; // 依次将号码加入新数组中 CFRelease(phoneNo); } CFRelease(tempArr); return [phoneArr autorelease]; } // 根据ABRecordRef获取联系人姓名全称 - (NSString *)getFullNameByRecord:(ABRecordRef)record { NSString *firstName = (NSString *)ABRecordCopyValue(record, kABPersonFirstNameProperty); NSString *midName = (NSString *)ABRecordCopyValue(record, kABPersonMiddleNameProperty); NSString *lastName = (NSString *)ABRecordCopyValue(record, kABPersonLastNameProperty); if(firstName == nil) firstName = @""; if(midName == nil) midName = @""; if(lastName == nil) lastName = @""; CFRelease(firstName); CFRelease(lastName); NSArray *languages = [NSLocale preferredLanguages]; NSString *langName = [languages objectAtIndex:0]; // 不需要使用 MiddleName if([langName isEqualToString:@"en"]) return [NSString stringWithFormat:@"%@ %@", firstName, lastName]; else if([langName isEqualToString:@"zh-Hans"]) return [NSString stringWithFormat:@"%@%@", lastName, firstName]; else return [NSString stringWithFormat:@"%@%@%@", firstName, midName, lastName]; } // 根据index获取联系人姓名全称 - (NSString *)getFullNameByIndex:(int)index { ABRecordRef ref = [self getABRecordRefByIndex:index]; return [self getFullNameByRecord:ref]; } @end
googlecode链接地址(会有更新):http://code.google.com/p/iphone-common-codes-ccteam/source/browse/trunk/CCFC/files/CCAddressBook.m
相关文章推荐
- iphone-common-codes-ccteam源代码 CCCommon.h
- iphone-common-codes-ccteam源代码 CCFileName.m
- iphone-common-codes-ccteam源代码 CCNSDate.m
- iphone-common-codes-ccteam源代码 CCNSString.m
- iphone-common-codes-ccteam源代码 CCNSURL.m
- iphone-common-codes-ccteam源代码 CCSystem.h
- iphone-common-codes-ccteam源代码 CCCommon.m
- iphone-common-codes-ccteam源代码 CCFileUtil.h
- iphone-common-codes-ccteam源代码 CCKeyboard.m
- iphone-common-codes-ccteam源代码 CCNetwork.h
- iphone-common-codes-ccteam源代码 CCRuntime.h
- iphone-common-codes-ccteam源代码 CCSystem.m
- iphone-common-codes-ccteam源代码 CCUIButton.m
- iphone-common-codes-ccteam源代码 CCUIDevice.h
- iphone-common-codes-ccteam源代码 CCCompile.h
- iphone-common-codes-ccteam源代码 CCFileUtil.m
- iphone-common-codes-ccteam源代码 CCUIDevice.m
- iphone-common-codes-ccteam源代码 CCCompile.m
- iphone-common-codes-ccteam源代码 CCFoundation.h
- iphone-common-codes-ccteam源代码 CCNSLocale.h