在iPhone上按字母顺序排列ABRecords
我正在使用以下代码检索联系人姓名:在iPhone上按字母顺序排列ABRecords,iphone,sorting,nsmutablearray,nsarray,abrecord,Iphone,Sorting,Nsmutablearray,Nsarray,Abrecord,我正在使用以下代码检索联系人姓名: for( int i = 0 ; i < n ; i++ ) { Contact *c = [[Contact alloc] init]; ABRecordRef ref = CFArrayGetValueAtIndex(all, i); NSString *firstName = (NSString *)ABRecordCopyValue(ref, kABPersonFirstNameProperty); NSStri
for( int i = 0 ; i < n ; i++ )
{
Contact *c = [[Contact alloc] init];
ABRecordRef ref = CFArrayGetValueAtIndex(all, i);
NSString *firstName = (NSString *)ABRecordCopyValue(ref, kABPersonFirstNameProperty);
NSString *lastName = (NSString *)ABRecordCopyValue(ref, kABPersonLastNameProperty);
c.firstName = firstName; //[NSString stringWithFormat:@"%@ %@", firstName, lastName];
c.lastName = lastName;
[contacts addObject:c];
[c release];
}
for(int i=0;i
有人知道按字母顺序排列这个列表的方法吗?我已经阅读了有关使用selector:@selector(compare:)排序的信息,但我不知道该如何工作。此方法将允许您尊重用户按名字或姓氏排序的偏好
NSSortDescriptor *mySorter = [[NSSortDescriptor alloc] initWithKey:@"lastName" ascending:YES];
[contacts sortUsingDescriptors:[NSArray arrayWithObject:mySorter]];
[mySorter release];
contacts = (bridgedPeople as [ABRecord]).sort {
(person1, person2) -> Bool in
return .CompareLessThan == ABPersonComparePeopleByName(person1, person2, ABPersonGetSortOrdering())
}
专业提示:要排序的名称的粗体部分;否则,当你混合使用[没有名字,没有姓氏,名字和姓氏]的联系人时,会让人感到困惑。谢谢,你可能需要将其编辑到NSSortDescriptor。再次感谢!