【发布时间】:2017-06-15 09:54:34
【问题描述】:
我有这个简单的代码来保存 coredata 中的对象。 在我的 xcatamodel 中,我将约束设置为“firstName”: Picture。 删除“学生”实体中的所有条目后,代码工作正常。 但仅限一次。 当我第二次保存同一组时,我得到“致命错误”。
func saveStudent() {
let student: Student = NSEntityDescription.insertNewObject(forEntityName: "Student", into: DatabaseController.getContext()) as! Student
student.firstName = "henry"
student.lastName = "miller"
student.age = 22
DatabaseController.saveContext()
let fetchRequest: NSFetchRequest<Student> = Student.fetchRequest()
do {
let searchResults = try DatabaseController.getContext().fetch(fetchRequest)
print("number of results: \(searchResults.count)")
for result in searchResults as [Student] {
print("\(result.firstName) \(result.lastName) \(result.age)")
}
} catch {
print ("error: \(error)")
}
}
据我了解,该约束旨在识别潜在的重复项。 有人知道如何解决这个问题吗? 这是错误:Picture 如需任何帮助,请提前致谢。
【问题讨论】:
-
这就是它给出错误的原因:防止创建重复项。
-
你知道如何把这个函数改成更新函数吗?检查重复的意思,如果不添加新条目,如果是,则取消条目。
-
你必须做一次提取并检查它是否已经存在。如果它进行更新,如果没有,则创建。没有快速更新。
-
它现在可以工作了。如果条目存在,它什么也不做,如果它不存在,它会添加条目。谢谢。
-
NSMergeByPropertyObjectTrumpMergePolicy
标签: swift core-data error-handling constraints core