验证失败后刷新(重新加载)NSManagedObject

时间:2017-01-31 16:36:21

标签: ios swift core-data

我为.xcdatamodel中的属性添加了最大/最小验证规则,如下所示:

validation rules

然后,如果我设置了无效值并尝试像这样保存,它会失败,因为我期望:

object.rating = 100
try? AppDelegate.context.save()

但是当我从上下文中重新获取对象时,它仍将包含无效的.rating,而不是验证之前的那个(仍然在数据存储区中的那个)。

如果我重新启动应用程序,则对象的rating将是旧的有效值。如何在保存尝试失败后从数据存储中刷新managedObjectContext值?

1 个答案:

答案 0 :(得分:0)

请试试这个:

managedObjectContext.refresh(managedObject, false)

必须刷新托管对象上下文中的对象。 此外,您可以使用:

managedObjectContext.reset()

它将重置上下文中的所有托管对象而不保存。