1

我想在objective-c中按字母顺序对数组进行排序。我已经以这种方式实现了它。

//Sorting of the Array
NSArray *sortedArray = [arrName sortedArrayUsingComparator:^(Cars *firstObject, Cars *secondObject) {
    return [firstObject.str_name compare:secondObject.str_name];
}];
arrName =[NSMutableArray arrayWithArray:sortedArray];

问题是所有数字出现后跟大写字母单词后跟小写字母项目...

我希望它按字母顺序显示-> 意思是说大写字母和小写字母可能混合在一起。

4

2 回答 2

14

替换compare:caseInsensitiveCompare:

由于arrName是可变的,请改用 'sortUsingComparator' 方法。它将在不创建新数组的情况下对可变数组进行排序。

[arrName sortUsingComparator:^(Cars *firstObject, Cars *secondObject) {
    return [firstObject.str_name caseInsensitiveCompare:secondObject.str_name];
}];
于 2013-02-19T03:45:40.183 回答
-1

尝试这个,

NSArray *array=[[NSArray alloc]initWithObjects:@"Object1",@"object1", nil];      
array =[array sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
NSLog(@"%@",array);
于 2013-02-19T03:49:52.437 回答