2016-11-13 18 views

答えて

0

NSMutableDictionary(あなたの場合はA、B、C)のキーの順序は、システムによって決定されます。あなたはそれをコントロールできません。

しかし、目標を達成するためにNSMutableArray(NSArrayは変更不可能な、つまり変更できないため)を使用することができます。配列の各要素は、物事を簡単にするために、2つのキーと値のペアを持つ別々のNSDictionary(キー用と注文用の2つ)です。

これはあなたが必要なコードです:

array = (
     { 
     key = B; 
     order = 1; 
    }, 
     { 
     key = C; 
     order = 2; 
    }, 
     { 
     key = A; 
     order = 3; 
    } 
) 

NSMutableArray *arrayOfDictionaries = [@[ 
             @{ @"key" : @"A", @"order" : @3 }, 
             @{ @"key" : @"B", @"order" : @1 }, 
             @{ @"key" : @"C", @"order" : @2 }, 
             ] mutableCopy]; 

[arrayOfDictionaries sortUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { 

    NSNumber *number1 = obj1[@"order"]; 
    NSNumber *number2 = obj2[@"order"]; 

    return [number1 compare:number2]; 
}]; 

NSLog(@"array = %@", arrayOfDictionaries); 

これらは修正された配列がどのように見えるか、結果であります

関連する問題