Ошибка objectID не найдена при получении контекста NSManagedObject в Core Data - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь получить доступ к NSManagedObject на основе «objectID».Из того, что я прочитал, говорится, что каждый NSManagedObject будет иметь уникальный «objectID».Но когда я пытаюсь получить доступ к объекту на основе «objectID», я получаю следующую ошибку:

CoreData: ошибка: SQLCore dispatchRequest: запрос обработки исключения:, объектный идентификатор ключа не найден в объекте с userInfo of (ноль)

func loadPlayerDetailsFromCoreData() {
    let fetch = Player.fetchRequest() as NSFetchRequest
    // Create Predicate
    let predicate = NSPredicate(format: "objectID == %@", selectedPlayerID!)
    fetch.predicate = predicate
    do {
        let player = try appDelegate.coreDataStack.managedObjectContext.fetch(fetch)
        print("Player selected = \(String(describing: player.first?.name))")
    } catch {
        print("Failed")
    }
}

1 Ответ

0 голосов
/ 31 января 2019

Чтобы получить доступ к NSManagedObject на основе objectID, вам нужно всего лишь написать

appDelegate.coreDataStack.managedObjectContext.object(with: selectedPlayerID)

Отметьте здесь Объект Apple Doc (с:)

...