Я хочу вставить объект NSDictionary в массив и отсортировать массив по объектуForKey.Вставка NSDictionary в отсортированный NSMutableArray
Мне удалось это сделать, вставив, повторно отсортировав и перезагрузив массив, который отлично работает, но я решил, что будет лучший метод, который есть, я просто не знаю, как его использовать.
Текущий код:
-(NSMutableArray*)sortArray:(NSMutableArray*)theArray {
return [[theArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:[[NSSortDescriptor alloc] initWithKey:@"n"
ascending:YES]]] mutableCopy];
}
возвращает повторно сортируется массив. Хорошо. Работает отлично, но ... это наиболее эффективно?
С другой вопрос, я заключаю, что это метод, используемый для поиска индекса для вставки в:
NSUInteger newIndex = [array indexOfObject:newObject
inSortedRange:(NSRange){0, [array count]}
options:NSBinarySearchingInsertionIndex
usingComparator:comparator];
[array insertObject:newObject atIndex:newIndex];
Проблема заключается в том, я понятия не имею, как использовать метод компаратор, и если это вообще возможно когда я хочу сортировать objectForKey для каждого индекса.
Можно ли иллюстрировать вышеупомянутый метод, когда ключ объекта (newObject в приведенном выше примере) для сортировки, давайте скажем:
[newObject objectForKey:@"sortByThis"];
Не могли бы вы рассказать об этом? Возможно, с полным примером. Я не понимаю, как любой из вышеперечисленных мог бы получить правильный индекс для ввода объекта? – nickdnk
используйте ключ словаря и сравнивайте себя и другие объекты. и вернуть NSComparisonResult ... позвольте мне попытаться изменить пример –
Разве это не возвращает мой отсортированный массив - как то, что я уже делаю? Я пытаюсь извлечь, в какую indexPath включить, чтобы предотвратить повторную сортировку всего массива. – nickdnk