NSArray сортировка благодаря другому NSArray - PullRequest
2 голосов
/ 25 декабря 2011

У меня есть NSArray, содержащий некоторые объекты.

NSArray *firstArray = [NSArray arrayWithObjects:obj, plop, color, shape, nil];

Теперь у меня есть другой NSArray, содержащий только объекты из первого NSArray, но не в том же порядке.

NSArray *secondArray = [NSArray arrayWithObjects: shape, color, plop, nil];

Я хочу отсортировать secondArray в том же порядке, что и в firstArray.

Я хочу, чтобы secondArray был:

  • plop
  • цвет
  • форма

Ответы [ 2 ]

1 голос
/ 25 декабря 2011

NSArray уже упорядочен, так что вы можете использовать его в своих интересах: почему бы просто не выполнить поиск объектов, которые находятся внутри firstArray, но не внутри secondArray, а затем удалить их из первого массива?

NSMutableArray *arrayObjectsInFirstArrayNotInSecondArray = [NSMutableArray arrayWithArray:firstArray];
[arrayObjectsInFirstArrayNotInSecondArray removeObjectsInArray:secondArray];

NSMutableArray *solution = [NSMutableArray arrayWithArray:firstArray];
[solution removeObjectsInArray:arrayObjectsInFirstArrayNotInSecondArray];
0 голосов
/ 25 декабря 2011

Обычно это тот тип вещей, для которого я автоматически указываю людям Apple NSSortDescriptor Class , но похоже, что то, что вы делаете, очень зависит от приложения и объекта.

Если ваши объекты формы, цвета и шлепания являются настоящими объектами Какао (т. Е. они реагируют на isKindOfClass селекторы ), вы можете просмотреть каждую часть вашего secondArray и создать новыйизменяемый массив (назовем его thirdArray для удобства аргумента) и используем перечисление для элементов secondArray, чтобы вставить каждый объект в thirdArray в нужном формате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...