为啥在关闭/打开应用程序后未保存的修改后的 NSManagedObject 在 isUpdated 上返回 FALSE?

Posted

技术标签:

【中文标题】为啥在关闭/打开应用程序后未保存的修改后的 NSManagedObject 在 isUpdated 上返回 FALSE?【英文标题】:Why an unsaved modified NSManagedObject returns FALSE on isUpdated after closing/opening app?为什么在关闭/打开应用程序后未保存的修改后的 NSManagedObject 在 isUpdated 上返回 FALSE? 【发布时间】:2011-08-19 20:16:18 【问题描述】:

为什么一个未保存但已修改的 NSManagedObject 有一个空的 -changedValues 并在关闭/打开应用程序(在后台运行)后在 -isUpdated 上返回 FALSE?

我不想在applicationDidEnterBackground 上保存修改后的NSManagedObject,但我想知道它是否在applicationWillEnterForeground 之后更新。

在我的实现中,我得到一个 empty [object changedValues]FALSE [object isUpdated]

这正常吗?我该怎么做才能不保存修改的对象,退出应用程序,返回并获取isUpdated TRUE

【问题讨论】:

【参考方案1】:

applicationDidEnterBackground 中只需检查isUpdated 并为结果设置一个变量。在applicationWillEnterForeground 检查您的变量。

但是,我认为这不是好的做法。为什么你不想在进入后台时保存?您想保留更改,然后保存;或者你不这样做,然后把它扔掉。

请记住,一旦应用处于后台,就无法保证它会再次出现。所以规则是你应该坚持你需要的一切,以便在应用再次激活时重新创建它。

【讨论】:

我认为这也不是一个好习惯,我理解你解释的保存过程。问题是,我想让这个属性正常工作,这样我就可以在用户尝试创建新的“对象”时使用它来警告用户,就像您关闭未保存的文档并且应用程序要求您保存修改后的文档一样.但我想最简单的方法是创建一个新属性来存储“更改的内容”布尔值。感谢您的回答!

以上是关于为啥在关闭/打开应用程序后未保存的修改后的 NSManagedObject 在 isUpdated 上返回 FALSE?的主要内容,如果未能解决你的问题,请参考以下文章

为啥Cisco Packet Tracer 7.1 64位 配置完后保存不了?

NSM 可变数据。为啥保留计数 1 比我预期的要高?

$("#myKendoGrid").data("kendoGrid") 在打开(和关闭)jQuery UI dlg 后未定义

ug标准件显示为只读怎么保存

在块中修改后未更新 Swift 结构

求懂apk编辑器的大神回答!为啥我修改名字后的apk都无法正常运行?有的安装不上有的无法打开,有