在核心数据中获取NSManagedObject上下文时找不到objectID错误

时间:2019-01-31 07:26:48

标签: ios swift core-data nspredicate nsfetchrequest

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

CoreData:错误:SQLCore dispatchRequest:异常处理请求:,在userInfo为(null)的实体中找不到键路径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")
    }
}

1 个答案:

答案 0 :(得分:5)

要基于objectID访问NSManagedObject,只需编写

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

在这里Apple Doc object(with:)

检查