NSSortDescriptor с функцией - PullRequest
       29

NSSortDescriptor с функцией

4 голосов
/ 11 ноября 2011

У меня ограниченный опыт использования NSSortDescriptor. Он сортировал по одному ключу и работал нормально. Но вот что мне нужно сейчас, у меня есть набор пар чисел, например: {(2,3), (44,5), (6,17), (33,7) …… (173,21)} Я хочу отсортировать пары (x, y) в соответствии со значением заданной функции myfunction (x, y). Существует тривиальная идея сделать триплеты (x, y, z), где z будет вычислением myfunction (x, y), а затем отсортировать набор триплетов, но это не то, что я хочу.

Есть ли правильный способ использовать NSSortDescriptor, чтобы делать то, что мне нужно?

Спасибо за любую информацию.

1 Ответ

1 голос
/ 11 ноября 2011

Если вы не используете этот дескриптор сортировки с Базовыми данными, используя хранилище SQLite, вы можете создать временный атрибут для объекта, где атрибут представляет z, вычисление вашей функции.После этого вы можете отсортировать этот переходный атрибут, и он даст желаемые результаты без сохранения значений z.

Однако, если вы используете Core Data с хранилищем, подобным SQLite, где все содержимое хранилища равно не для чтения в память, вы не можете использовать временные атрибуты для сортировки, и вам придется либо хранить ваши значения z на самом деле в управляемых объектах, чтобы достичь того, что вы описываете, либо читать все ваши управляемые объекты вмассив, а затем отсортировать этот массив объектов по временному свойству ... что бы работало нормально, если бы у вас было только ограниченное количество управляемых объектов, но не так хорошо, в противном случае.

...