Vivek Tyagi
Vivek Tyagi

Reputation: 178

How to make instance of entity of core data in Swift?

Entity name :- Article

let entityInstance = Article()

I want to update its attributes, but don't know how to create its instance.

I've used this:
let entityInstance = NSEntityDescription.insertNewObject(forEntityName: "ArticleDetails", into: managedObjectContext) as? ArticleDetails

But it creates new instance instead of updating in the previous one.

Upvotes: 0

Views: 814

Answers (1)

Madhur
Madhur

Reputation: 1116

To update an entity, you can try the following:

  let empId = "001"
    let fetchRequest:NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "EmpDetails")
    let predicate = NSPredicate(format: "empId = '\(empId)'")
    fetchRequest.predicate = predicate
    do
    {
        let test = try context?.fetch(fetchRequest)
        if test?.count == 1
                    {
                        let objectUpdate = test![0] as! NSManagedObject
                        objectUpdate.setValue("newName", forKey: "name")
                        objectUpdate.setValue("newDepartment", forKey: "department")
                        objectUpdate.setValue("001", forKey: "empID")
                        do{
                            try context?.save()
                        }
                        catch
                        {
                            print(error)
                        }
                    }
    }
    catch
    {
        print(error)
    }

Upvotes: 2

Related Questions