I am trying to access an NSManagedObject based on the "objectID". From what I have read its saying that every NSManagedObject will have a unique "objectID". But when I am trying to access an object based on the "objectID" I am getting the following error.
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")
}
}
To access an NSManagedObject based on the objectID, you only need to write
appDelegate.coreDataStack.managedObjectContext.object(with: selectedPlayerID)
Check it here Apple Doc object(with:)