2011-10-20 11 views
4

私はNSMutableArrayNSStringsから構成しています。私がそれを並べ替える必要があるとき、私は[array sortUsingSelector:@selector(caseInsensitiveCompare:)]を使います。NSStringのNSMutable配列をセレクタを使用して部分文字列でソートできますか?

しかし、私は時々NSStringの部分文字列で配列をソートする必要があります。部分文字列は、この場合、マーカーの後にNSStringの一部として定義されます。事は、マーカがすべての文字列に異なって配置できるという事実によってさらに複雑になります。

明らかに私はNSStringを2つのオブジェクトに分割して並べ替えることができますが、大きな変更が必要です。

上記のようなセレクタを使用してソートを行う方法はありますか?

もしそうでなければ、配列のソートされたコピーを作成して(代わりにセレクターを使用して)、ソートしてオリジナルを解放すると思います。

答えて

6

あなたはNSMutableArrayののsortWithOptions:usingComparatorで任意に複雑なソートをインラインで実行できます。

[myMutableArray sortWithOptions:NSSortStable usingComparator:^NSComparisonResult(NSString* str1, NSString* str2) { 

    // Scan for your marker in both strings and split on it... 
    // Say you store the results in substr1 and substr2... 
    return [substr1 caseInsensitiveCompare:substr2]; 
}]; 
+0

マットは、どうもありがとうございました。私はこの機能について知らなかった。最高の、ビクター – user612514

関連する問題