У меня есть набор словарей, как показано ниже.Как изменить порядок массивов словарей в соответствии с произвольным порядком ключей/атрибутов (ни восходящий, ни нисходящий)
NSMutableArray *newArray
({
{
A = John;
B = THAILAND;
},
{
A = Jack;
B = US;
}
{
A = Lee;
B = BRAZIL;
}
{
A = Brandon;
B = UK;
}
{
A = Jill;
B = JAPAN;
}
{
A = Johnny;
B = UK;
}
{
A = Amar;
B = AUSTRALIA;
}
})
Я хочу, чтобы изменить порядок выше массив на основе другого массива (Key B из newArray), который является
NSArray *sortArray = [[NSArray alloc] initWithObjects"US",@"UK",nil];
Это означает, что мой последний массив должен содержать значение первого следует Великобритания следует США отдых. Вкратце, как я могу установить собственный заказ для атрибута/ключа в массиве.
Как я могу это сделать?
Ожидаемый результат:
NSMutableArray *finalArray
({
{
A = Jack;
B = US;
},
{
A = Brandon;
B = UK;
}
{
A = Johnny;
B = UK;
}
{
A = John;
B = THAILAND;
}
{
A = Lee;
B = BRAZIL;
}
{
A = Jill;
B = JAPAN;
}
{
A = Amar;
B = AUSTRALIA;
}
})
Я попытался следующий код, который дает мне порядке возрастания ключа B.
[newArray sortUsingDescriptors:[NSArray arrayWithObjects: [[NSSortDescriptor alloc] initWithKey:@"B" ascending:YES], nil]];
Что мне нужно передать в аргументах a и b вышеприведенному блоку в моем примере? – user2181174
Извинения, я добавил в код немного больше мяса - 'sortUsingComparator:' - метод в 'NSMutableArray'; он будет поставлять пары объектов из массива в ваш компаратор в любом порядке, чтобы определить порядок массива. – Tommy