1

我是objective-c,ios的新手。我正在尝试按字母顺序对一个名为 filteredList 的 NSMutableArray 进行排序,其中包含 NSString 类型的对象。

所以如果我的可变数组包含: [Mary, Bill, John] 我想要 [Bill, Mary, John]

我做了以下事情:

[filteredList sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; 

但我没有看到任何变化。我确实阅读并尝试了其他解决方案,例如 compare: 而不是本地化CaseInsensitiveCompare 但仍然没有。

4

3 回答 3

2

更新

 NSArray *sortedArray =[unSortedArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];//unSortedArray is NSMutableArray
unSortedArray = [[NSMutableArray alloc]initWithArray:sortedArray];
于 2013-10-29T12:05:04.090 回答
0

我会做类似的事情:

NSArray *sortedArray = [filteredList sortedArrayUsingComparator:^(NSString *str1, NSString *str2) {
    return (NSComparisonResult)[str1 compare:str2];
}];
filteredList = [sortedArray mutableCopy];
于 2013-10-29T12:06:35.073 回答
0

请参考以下代码:-

filteredList = (NSMutableArray*)[filteredList sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
于 2013-10-29T12:26:18.757 回答