【发布时间】:2014-01-06 05:41:39
【问题描述】:
我有 nsarray 字符串,例如“fistname surname”。现在我想按第二个单词(即姓氏)对该字符串数组进行排序。 我用了这个方法
NSArray *sortedArray=[[teachersList allValues] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
NSLog(@"After %@",sortedArray);
但它会根据第一个单词对数组进行排序。
而且我也有只有名字的元素或字符串仅表示第一个单词。
那么该怎么做呢?
编辑
@Janak Nirmal
我修改后的代码是:
while([resultSet next])
{
[teachersList setObject:[NSString stringWithFormat:@"%@ %@",[resultSet stringForColumn:@"first_name"],[resultSet stringForColumn:@"last_name"]] forKey:[resultSet stringForColumn:@"email_id"]];
[emailList addObject:[resultSet stringForColumn:@"email_id"]];
appDelegate.grade=[resultSet stringForColumn:@"grade"];
}
//NSArray *sortedArrays=[[teachersList allValues] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
NSArray *sortedArray = [[teachersList allValues] sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
NSString *firstTeacher2ndWord = [[[[(Teacher*)a name] componentsSeparatedByString:@" "] objectAtIndex:1] lowercaseString];
NSString *secondTeacher2ndWord = [[[[(Teacher*)b name] componentsSeparatedByString:@" "] objectAtIndex:1] lowercaseString];
return [firstTeacher2ndWord compare:secondTeacher2ndWord];
}];
但我收到以下错误
[__NSCFString name]: 无法识别的选择器发送到实例
【问题讨论】:
标签: ios objective-c arrays sorting