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);
これらは修正された配列がどのように見えるか、結果であります