0

Stack Overflow の回答からこれらのコード スニペットを見つけましたが、問題をエレガントに解決することもできませんでした。

「配列をアルファベット順にソートしています…」の最初のコードは警告を発しませんでしたが、クラッシュが続きました。

NSSortDescriptor *nameSort = [NSSortDescriptor sortDescriptorWithKey:@"Name" ascending:YES];
[myArray sortUsingDescriptors:[NSArray arrayWithObject:nameSort]];

コードの 2 番目の部分は、コードで使用するたびに警告を生成しますが、必要な結果を生成します。

myMutableArray = [myMutableArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

それで、私の質問は、2 番目の方法が警告 " " で機能するのはなぜIncompatible pointer types assigning to 'NSMutableArray*' from incompatible type 'NSArray*'ですか?

4

1 に答える 1

2

NSMutableArray のインプレース ソートを実行しようとしている場合は、(NSMutableArray ではなくプレーンな NSArray として宣言されている)sortUsingSelector:の結果を再割り当てするのではなく、を使用する必要があります。sortedArrayUsingSelector:

于 2012-06-13T22:44:20.857 に答える