問題

私は "objectID"に基づいてNSManagedObjectにアクセスしようとしています。私が読んだことから、すべてのNSManagedObjectに一意の "objectID"があると言います。しかし、 "objectID"に基づいてオブジェクトにアクセスしようとすると、次のエラーが発生します。

CoreData:エラー:SQLCore dispatchRequest:例外処理要求:、keypath objectIDがエンティティに見つかりません(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")
    }
}
 

  ベストアンサー

objectID に基づいて NSManagedObject にアクセスするには、

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

Apple Docオブジェクト(:)

  同じタグがついた質問を見る

iosswiftcore-datanspredicatensfetchrequest