我正在尝试基于“objectID”访问 NSManagedObject。从我读过的内容来看,每个 NSManagedObject 都会有一个唯一的“objectID”。但是,当我尝试访问基于“objectID”的对象时,出现以下错误。

CoreData:错误:SQLCore dispatchRequest:异常处理请求:,在 userInfo 为(null)的实体中找不到 keypath objectID

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")
    }
}

最佳答案

根据objectID访问一个NSManagedObject,只需要写

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

在这里检查 Apple Doc object(with:)

关于ios - 在核心数据中获取 NSManagedObject 上下文时未找到 objectID 错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54455349/

10-13 09:52