NSFetchRequest без дескрипторов вида

Мы не можем использовать NSFetchRequest, не обеспечивая NSSortDescriptor (s). Все, что я хочу сделать, выбрать результаты и показать им в порядке, в котором они были созданы. Существует ли встроенный способ сделать это?, или я должен буду создать новое "автоинкрементное" поле? (который идет вразрез со всем, что CoreData поддерживает, по-моему).

6
задан Mustafa 3 August 2010 в 14:46
поделиться

2 ответа

Core Data не дает никаких гарантий в отношении порядка. Вам не нужно создавать поле «автоинкремент»; однако вы можете сделать соответствующий атрибут. Поскольку вы, очевидно, заботитесь о дате создания чего-либо, вам следует добавить атрибут dateCreated к своему объекту данных. Затем отсортируйте по этому.

Вы можете легко установить это в методе управляемого объекта didAwakeFromInsert .

6
ответ дан 8 December 2019 в 18:29
поделиться

Похоже, вы думаете о Core Data в терминах таблиц и ожидаете, что должен быть автоматический порядок, такой же, как и номер строки таблицы. Однако Core Data не использует таблицы, строки или любую другую фиксированную линейную структуру данных.

Нет встроенного порядка для выборок, потому что каждый запрос выборки очень специфичен для потребностей представления, которое он помогает заполнить. NSFetchRequest требует дескриптора сортировки, потому что он возвращает массив и требует дескриптора сортировки для превращения неупорядоченных управляемых объектов в графе объектов в упорядоченный массив.

В общем, нет встроенного порядка для управляемых объектов в графе объектов, потому что каждая модель данных имеет разные критерии для структурирования данных. Например, для большинства моделей временные последовательности, в которые вставляются объекты, не имеют значения. Зачем встраивать временную метку в каждый управляемый объект, который должно использовать каждое приложение Core Data повсюду, когда оно понадобится только в крошечном меньшинстве случаев?

Если временные последовательности являются важной частью логических отношений вашей модели, т. Е. Они отражают реальные объекты, события или условия, которые моделирует модель данных, то как предложил Джейсон Коко , вам следует добавить атрибут отметки времени. для самой сущности, так что объекты-объекты будут моделировать время своего собственного создания.

6
ответ дан 8 December 2019 в 18:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: