Iphone 按电话联系人顺序在UITable视图中显示联系人
我可以从通讯录中导入联系人并将其显示在表视图中。但我要做的是以与通讯录顺序相同的顺序显示联系人 有人能帮我怎么做吗?我的代码如下Iphone 按电话联系人顺序在UITable视图中显示联系人,iphone,Iphone,我可以从通讯录中导入联系人并将其显示在表视图中。但我要做的是以与通讯录顺序相同的顺序显示联系人 有人能帮我怎么做吗?我的代码如下 self.navigationController.navigationBar.tintColor = [UIColor grayColor]; self.title = @"iPhone Contacts"; [super viewDidLoad]; wantedname= [[NSMutableArray alloc] init];
self.navigationController.navigationBar.tintColor = [UIColor grayColor];
self.title = @"iPhone Contacts";
[super viewDidLoad];
wantedname= [[NSMutableArray alloc] init];
wantednumber= [[NSMutableArray alloc] init];
ABAddressBookRef addressBook = ABAddressBookCreate();
NSArray *thePeople = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
NSString *name;
for (id person in thePeople)
{
name = (NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
NSLog(@"!!!!!! name ---> %@",name);
ABMultiValueRef multi = ABRecordCopyValue(person, kABPersonPhoneProperty);
int count1=ABMultiValueGetCount(multi);
NSLog(@"%d",count1);
if ([name length]>0 && count1!=0)
{
NSString *beforenumber = (NSString *)ABMultiValueCopyValueAtIndex(multi, 0);
NSLog(@" contacts:%@",beforenumber );
NSString* removed1=[beforenumber stringByReplacingOccurrencesOfString:@"-"withString:@""];
NSString* removed2=[removed1 stringByReplacingOccurrencesOfString:@")"withString:@""];
NSString* removed3=[removed2 stringByReplacingOccurrencesOfString:@" "withString:@""];
NSString* removed4=[removed3 stringByReplacingOccurrencesOfString:@"("withString:@""];
NSString* removed5=[removed4 stringByReplacingOccurrencesOfString:@"+"withString:@""];
[wantedname addObject:name];
[wantednumber addObject:removed5];
// CFRelease(beforenumber);
[beforenumber release];
//CFRelease(name);
}
//CFRelease(name);
[name release];
CFRelease(multi);
}
CFRelease(addressBook);
CFRelease(thePeople);
contactstable.delegate = self;
contactstable.dataSource = self;
而不是:
NSArray *thePeople = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
您可以尝试:
ABRecordRef source = ABAddressBookCopyDefaultSource(addressBook);
NSArray *thePeople = (NSArray*)ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(addressBook, source, kABPersonSortByLastName);
我就是这样做的。希望有帮助。:)
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error);
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFMutableArrayRef allPeopleMutable = CFArrayCreateMutableCopy(kCFAllocatorDefault, CFArrayGetCount(allPeople), allPeople);
CFArraySortValues(allPeopleMutable, CFRangeMake(0, CFArrayGetCount(allPeopleMutable)), (CFComparatorFunction)ABPersonComparePeopleByName, kABPersonSortByFirstName);