Как получить запрос на выборку, чтобы вернуть количество объектов в постоянном хранилище? - PullRequest
0 голосов
/ 16 декабря 2018

Когда мое приложение запускается и создается первый контроллер представления, также создается новый вспомогательный NSManagedObject.На данный момент я НЕ сохранил контекст (и я начал с нового, пустого постоянного хранилища).

Пользователь может перейти к другому экрану, который покажет сообщение, если нет сохраненных элементов или, еслисохраненные элементы существуют, он покажет список элементов.Вот как я проверяю сохраненные элементы:

func checkForSavedItems() -> Bool {
    var itemsDoExist = false
    let fetchRequest = NSFetchRequest<NSNumber>(entityName: "Items")
    fetchRequest.includesPendingChanges = false
    fetchRequest.resultType = .countResultType

    do {
        let countResult = try context.fetch(fetchRequest)
        itemsDoExist = countResult.first!.intValue > 0
    } catch let error {
        print(error)
    }
    return itemsDoExist
}

Я ожидал, что fetchRequest.includesPendingChanges = false гарантирует, что новый объект, который не был сохранен, не будет засчитан, но это так.Счетчик возвращается как 1, поэтому он должен подсчитывать элементы в NSManagedObjectContext

. Это также предполагает, что запрос на выборку возвращает количество элементов в контексте, а не в постоянном хранилище.

Как я могу получить реальное количество предметов в постоянном магазине?

Спасибо

1 Ответ

0 голосов
/ 19 декабря 2018

Я также ожидал, что fetchRequest.includesPendingChanges = false исключит объекты, которые были вставлены в контекст, но не сохранены в хранилище.

Однако метод count(for: NSFetchRequest) должен давать правильный счет.Вы можете найти документацию Apple здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...