2017-03-16 13 views
2

NSArrayのインスタンスがあり、そのインスタンスがNSArrayであります。内部配列にはNSStringのインスタンスのみが含まれます。ネストした配列を選択したインデックスでアルファベット順にソートする必要があります。ネストしたNSArrayを使用してNSArrayをソートする方法

など。

@[ 
    @[@"test",@"B",@"test2"], 
    @[@"bla",@"A",@"bla"], 
    @[@"xyz",@"C",@"123"] 
] 

ユーザーは、インデックス1、昇順ソートを選択します。結果は次のようになります。

@[ 
    @[@"bla",@"A",@"bla"], 
    @[@"test",@"B",@"test2"], 
    @[@"xyz",@"C",@"123"] 
] 

答えて

3

あなたはsortedArrayUsingComparatorを使用することができます明らかに

NSArray *array = @[@[@"test",@"B",@"test2"], 
        @[@"bla",@"A",@"bla"], 
        @[@"xyz",@"C",@"123"]]; 

NSInteger index = 1; 

NSArray *sorted = [array sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { 
    return [obj1[index] compare:obj2[index] options:NSCaseInsensitiveSearch]; 
}]; 

、サブアレイは、アイテムの数が異なるか、彼らはすべての文字列でないなら、あなたが処理するためにいくつかの追加のロジックを含む可能性がある場合それは基本的な考え方を示しています。

+0

これだけです。ありがとうございました。 –

関連する問題