【问题标题】:objectID not found error while fetching NSManagedObject context in Core Data在核心数据中获取 NSManagedObject 上下文时找不到 objectID 错误
【发布时间】:2019-06-24 14:31:28
【问题描述】:

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

CoreData: error: SQLCore dispatchRequest: exception handling request: , keypath objectID not found in entity with userInfo of (null)

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

【问题讨论】:

    标签: ios swift core-data nspredicate nsfetchrequest


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-30
      • 1970-01-01
      相关资源
      最近更新 更多