Swift Core 数据无法第二次存储数据:Cocoa 错误 1560



我有核心数据和三个对象。假设我有对象:Parent, Child, Item.

ParentSet<Child>ChildSet<Item>,所以换句话说,

Parent have one to many relationship with Child
Child have one to many relationship with Item
Parent: 
- var childs : Set<Child>
Child:
- var items : Set<Item>

为了在里面存储数据,我有方法:

func insert(parent : Parent)  {
// remove all old Childs
parent.removeChild(Parent.childs)
for data in datas {
let child = self.newChildFromData(data)
for data2 in datas2 {
let item = self.newItemFromData2(data2)
child.addItem(item)
}
parent.addChild(child)
}
do {
try managedObjectContext.save()
} catch {
print(error.debugDescription)
}
}
  • 注意这不是真正的代码,但它足够接近理解问题。

当我第一次运行方法(空数据库)时,它工作正常,但是当我第二次运行它时,它给了我错误

The operation couldn’t be completed. (Cocoa error 1560.)
Error Domain=NSCocoaErrorDomain Code=1560 "(null)" UserInfo={NSDetailedErrors=(
"Error Domain=NSCocoaErrorDomain Code=1570 "The operation couldnU2019t be completed. (Cocoa error 1570.)" UserInfo={NSValidationErrorKey=server, NSLocalizedDescription=The operation couldnU2019t be completed. (Cocoa error 1570.), NSValidationErrorObject...

那会是什么?

如果您在更改代码以满足这两个要求后遇到错误,请尝试清理您的构建并从您的 iPhone 模拟器/iPhone 设备中删除应用程序。您还可以参考库核心数据常量参考

此外,您还可以参考核心数据模型版本控制和数据迁移编程指南。它将帮助您迁移核心数据模型。

最新更新