我为.xcdatamodel
中的属性添加了最大/最小验证规则,如下所示:
然后,如果我设置了无效值并尝试像这样保存,它会失败,因为我期望:
object.rating = 100
try? AppDelegate.context.save()
但是当我从上下文中重新获取对象时,它仍将包含无效的.rating
,而不是验证之前的那个(仍然在数据存储区中的那个)。
如果我重新启动应用程序,则对象的rating
将是旧的有效值。如何在保存尝试失败后从数据存储中刷新managedObjectContext
值?
答案 0 :(得分:0)
请试试这个:
managedObjectContext.refresh(managedObject, false)
必须刷新托管对象上下文中的对象。 此外,您可以使用:
managedObjectContext.reset()
它将重置上下文中的所有托管对象而不保存。