【问题标题】:Store a NSOperation with Core Data使用核心数据存储 NSOperation
【发布时间】:2012-07-14 07:14:01
【问题描述】:

我需要为NSOperationQueue 添加持久性,以便用户可以关闭我的应用程序而不会丢失任何数据。 我是核心数据的忠实粉丝,所以我正在寻找一种方法来将我的 NSOperation 子类存储在核心数据上。

有什么建议吗?

【问题讨论】:

  • 对不起,你能更好地解释一下你想要实现什么吗?谢谢。
  • 当然,但对不起我的英语。我需要从 ipad 应用程序向我的服务器发送一些信息,并且我创建了一个 NSOperation 的子类来执行这项工作。如果用户在完成所有操作之前关闭应用程序,我需要以持久的方式保存它们......所以我认为 coredata 可能是一个好主意。但问题是......我可以在 coredata 中保存一个 nsoperation 吗?

标签: core-data persistence nsoperation nsoperationqueue


【解决方案1】:

我不确定你的问题,但我会尽量给你一些提示。

是的,Core Data 可能是一种有效的方法。我不知道您为什么需要存储NSOperation

相反,我可以建议您安排您的模型来处理同步操作。特别是,我会为您需要与服务器同步的实体添加一个属性。称它为,例如 isSync 并说它是一个 BOOL 值。

因此,当特定数据与服务器同步并且您收到了良好的响应时,您可以修改该属性以假定 YES 值。这意味着已同步特定数据。换句话说,当一个对象(数据)没有同步时,它的isSync值为NO,否则为YES,如果你愿意,你可以删除它。

下次,您可以将具有isSync 值的数据同步到NO。它们尚未同步。其他元素已同步,您可以删除它们以节省设备空间。

要了解如何进行同步,我真的建议阅读这个 stackoverflow 主题 How to Sync iPhone Core Data with web server, and then push to other devices?

此外,如果您处理操作,如果用户关闭了应用程序,您需要取消当前操作。一个非常有趣的讨论可以在Queue of NSOperations and handling application exit找到。

显然,可能还有其他解决方案可以实现这一目标,但我认为这可能是实现您想要做的事情的简单方法。

希望对您有所帮助。

【讨论】:

  • 感谢您的回答。我不能只使用一个文件“isSync”,因为我需要存储一些其他信息,例如“isUpdated”或“isDeleted”。但感谢有关 nsoperation 的链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 1970-01-01
相关资源
最近更新 更多