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 に答える