保存managedObjectContext时如何处理错误?

Gon*_*alo 6 iphone core-data ipad ios

如果在执行 - [NSManagedObjectContext save:]时出现错误,则恢复到现有持久存储的适当策略是什么?

- [NSManagedObjectContext rollback]?

或者我应该在尝试保存之前在文件系统上保存商店的副本:然后,如果出现错误,请使用 - [NSPersistentStoreCoordinator setURL:forPersistentStore:]将商店设置为已保存的商店?

谢谢你的任何指示.

贡萨洛

Mat*_*uch 10

当保存失败时(作为程序员)做错了.

我写了一些非常复杂的Core-Data应用程序,从未在生产中看到过失败的保存.

确保可以保存用户可以输入的值而不会出现错误.

这意味着如果您具有非可选关系,则在用户为此关系选择实体之前,不接受"完成"按钮.或者设置默认关系实体.
如果您需要特殊格式的NSString,请在接受之前验证该字符串.

对用户来说也更方便.如果你告诉他10 minutes ago you did something wrong, thats why I will delete all your changes他会思考WTF?.如果你告诉他The value you try to enter is not in the correct format. Please use xxxxx他会思考Ok, let's change it.

现在,在你确定保存从未失败之后,你可以放入[context rollback]它,因为你永远不应该说永远不会.
但在此之前,您应该询问用户是否要向您发送错误日志.因为保存永远不会失败.