NSMutableDictionary (귀하의 경우 A, B, C)의 키 순서는 시스템에 의해 결정됩니다. 너는 그 일을 통제 할 수 없다.
하지만 목표를 달성하기 위해 NSMutableArray (변경할 수 없으므로 NSArray가 아니기 때문에)를 사용할 수 있습니다. 배열의 각 요소는 두 가지 키 - 값 쌍을 가진 별도의 NSDictionary가 될 것입니다. 즉, 키와 값을 더 간단하게 만드는 것입니다.
이
당신이 필요로하는 코드입니다 :
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);
이 수정 된 배열과 같은 모양을 한 결과, 다음과 같습니다
array = (
{
key = B;
order = 1;
},
{
key = C;
order = 2;
},
{
key = A;
order = 3;
}
)