subin272
subin272

Reputation: 753

objectID not found error while fetching NSManagedObject context in Core Data

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

Upvotes: 3

Views: 386

Answers (1)

IBAction
IBAction

Reputation: 2207

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:)

Upvotes: 6

Related Questions