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

标签 ios swift core-data

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

validation rules

然后如果我设置无效值并尝试像这样保存,它会像我预期的那样失败:

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

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

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

最佳答案

请试试这个:

managedObjectContext.refresh(managedObject, false)

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

managedObjectContext.reset()

它将在不保存的情况下重置上下文中的所有 managedObjects。

关于ios - 验证失败后刷新(重新加载)NSManagedObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41962695/

相关文章:

ios - 核心数据实体的奇怪行为

ios - UILabel绘制/出现在屏幕上的相关方法

ios - 我应该把功能放在哪里?

ios - 您不能以 root (Ionic) iOS 身份运行 CocoaPods

ios - 如何重新计算 NSFetchedResultsController 的 IndexPath,记录分为 3 个部分 : today, future ,过去?

objective-c - 从 Core Data 中删除选定的 NSTableView 行?

ios - 如何在 Root View 中隐藏导航 Controller ?

ios - 如何将 fatalError 消息保存到 iOS 崩溃日志中?

ios - 如何在 swift 4.1 和 xcode 9.3 中使用 JSONDecoder 解码嵌套的 JSON 数组和对象?

ios - CoreData - 按关系批量获取对象以获得更好的性能