2017-03-16 154 views
2

我有一個NSArray的實例,裏面有NSArray的實例。內部數組僅包含NSString的實例。我需要按選定的索引按字母順序對嵌套數組進行排序。如何使用嵌套NSArray對NSArray進行排序

E.g.

@[ 
    @[@"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

就是這樣。謝謝。 –