Transient sectionNameKeyPath & NSSortDescriptor NSFetchedResultsController

У меня есть список задач в Core Data. Я загружаю их в UITableView с помощью NSFetchedResultsController.

Мне нужны настраиваемые разделы в произвольном порядке:

  1. ПРОСТАЛО
  2. АКТИВНО
  3. ПРОДОЛЖАЕТСЯ
  4. ОТЛОЖЕНО
  5. ВЫПОЛНЕНО

Чтобы определить, в какой раздел должна быть поставлена ​​задача, я использую производный переходный атрибут, рассчитанный на лету на основе других атрибутов относительного объекта.

К сожалению, вы не можете передать производное значение в качестве дескриптора сортировки, используемого запросом на выборку. Это связано с тем, что выборка полагается на уже имеющиеся данные, которые ее просят извлечь. Куриное яйцо.

Я понимаю, почему я не могу этого сделать, это не помогает мне решить проблему!

Я пытался:

  • создать подкласс NSFetchedResultsController для «настройки создания заголовки разделов и указателей '. Возможно, я делаю это неправильно, однако это просто меняет имена и порядок разделов, а не то, сколько вещей находится в этих разделах (, что является критическим ).

  • Заполнение массивов по секциям и передача их в таблицу (неуклюже, медленно, но полностью работает ).

  • Удаление текущих и отложенных задач (, что работает, но не идеально ). Таким образом, я могу сортировать по dueDate и управлять sectionNameKeyPath через переходные значения.

У кого-нибудь есть идеи получше? Таких вопросов уже довольно много, но ни один из них не приходит к четкому решению.

Заранее спасибо!

Cheers

16
задан Timbo 7 May 2012 в 12:24
поделиться