Извлечение основных объектов данных в порядке вставки - PullRequest
4 голосов
/ 25 апреля 2010

Существует ли внутренняя переменная ID или метка времени, которую я могу использовать в NSSortDescriptor для извлечения сущностей базовых данных в порядке их вставки?

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

Ответы [ 2 ]

7 голосов
/ 25 апреля 2010

Нет, если вы хотите порядок сортировки для ваших данных, вы должны добавить это к своим объектам самостоятельно. Однако вы можете легко добавить атрибут NSDate со значением по умолчанию «СЕЙЧАС», чтобы он автоматически заполнялся.

3 голосов
/ 18 декабря 2015

Вы также можете добавить атрибут к вашей сущности, назвать его чем-то вроде «sortNum», и всякий раз, когда вы извлекаете вашу сущность, вы извлекаете его с помощью дескриптора сортировки.

Шаг 1

Добавьте атрибут сортировки, в данном случае я назвал его «displayOrder»

Core Data: add sort order

Шаг 2

Добавить или вставить новый элемент в ваш список.

 let insertAt = 0
 managedContextVar.insert(mngdObjectVar, atIndex: insertAt )

Шаг 3

Исправьте все в этом объекте и обновите значение сортировки.

func updateDisplayOrder() {
    for i in 0..<taskList_Cntxt.count {
        let task = taskList_Cntxt[i]
        task.setValue( i, forKey: "displayOrder" )
    }
}

Тогда сохраните!

Шаг 4

Теперь, когда вы в следующий раз сделаете запрос на выборку, обязательно добавьте в сортировку.

   let sortDescriptor = NSSortDescriptor(key: "displayOrder", ascending: true )

Вот и все!

Это должно справиться с вашим видом довольно хорошо. Честно говоря, иногда этот код вставляет мои новые элементы сверху, а не сверху, но в 95% случаев этот код работает отлично. Независимо от того, вы поняли идею и можете настроить и улучшить ее.

Удачи.

...