Updated 24 January 2020
Unique Constraints are a way to declare a custom attribute to be unique across all instances of an entity. Its intended use case is the import of external data that should be merged with existing objects in the database.
Until now, when you wanted to import data objects into Core Data from a file or network request, you had to create a fetch request for each incoming object with a predicate that matches the id and then executes it to look for an existing version of that object. If you found one, you would update it, otherwise, create a new object. With Unique Constraints, you don’t have to do this fetch/if/else anymore and save lots of DB requests while parsing the data.
First, we will create an Entity with the data model.
Here we have added the “title” with Notes Entity as Constraints.
1 2 3 4 5 |
var context: NSManagedObjectContext = { let x = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext x.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy return x }() |
Here we add the NSMergeByPropertyObjectTrumpMergePolicy for make the record unique.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
func saveData(_ title: String, _ description: String, _ time: String) -> Bool { let userEntity = NSEntityDescription.entity(forEntityName: "Notes", in: context)! let user = NSManagedObject(entity: userEntity, insertInto: context) user.setValue(title, forKeyPath: "title") user.setValue(description, forKey: "descript") user.setValue(time, forKey: "time") do { try context.save() } catch let error as NSError { print("Could not save. \(error.localizedDescription)") return false } return true } |
with the help of constraint, we will make each object unique.
So pls follow the above step and And if you have any issue or suggestion you can leave your message in the comment section I will try to solve this.
If you have more details or questions, you can reply to the received confirmation email.
Back to Home
Be the first to comment.