Дескрипторы множественной сортировки - PullRequest
0 голосов
/ 05 ноября 2011

При указании нескольких дескрипторов сортировки:

NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:lastName, firstName, age, nil];

Допустим, что lastName, firstName и age относятся к типу NSSortDescriptor и имеют ключи, предлагаемые их именами.

Я просто хочу понять, что произойдет, когда я это сделаю. Скажем, у меня есть некоторые основные данные (например, список людей), и я сортирую их, используя эти дескрипторы сортировки. Будет ли сначала пытаться отсортировать фамилии, а затем, если фамилии совпадают, попытаться отсортировать (только те записи, где фамилия одинакова) по именам, а затем, если имена и фамилии совпадают , он будет пытаться сортировать (только для этих записей) по возрасту в качестве последнего средства. Или он отсортирует список по фамилии, затем вернется и снова отсортирует по имени, затем снова вернется и отсортирует по возрасту?

1 Ответ

6 голосов
/ 05 ноября 2011

Он делает то, что вы хотели - первый.Я сомневаюсь, что техническая реализация такая, как вы ее описали, но результат тот же.

Один из способов достижения технической реализации - просто выполнить прямую сортировку для каждого, но запустить их в обратном порядке (третичная, сопровождаемый вторичной сортировкой, сопровождаемой первичной сортировкой).Это будет иметь чистый эффект желаемого результата, и не требует, чтобы каждый сорт обращал внимание на другие виды, но производит сортировку по первичному ключу, подчиненному вторичному ключу, упорядоченномуснова по третичному ключу.Но могут быть более эффективные реализации такого рода, которые база данных может использовать.Хорошей новостью является то, что вам не нужно знать, как это работает - это просто так.:)

...