代码之家  ›  专栏  ›  技术社区  ›  Redwood

将通过web服务上载到磁盘的项目持久化

  •  1
  • Redwood  · 技术社区  · 17 年前

    我有一个启动守护程序,它经常使用NSOperationQueue通过web服务上传一些数据。

    这不是一个高负载应用程序,它可能每分钟间歇性接收的项目不超过1或2个,通常间隔几个小时。

    在没有这种持久性的情况下,我的初始实现如下所示:

    1. 守护进程接收数据。
    2. 守护进程将数据解析为MyDataObject类型的对象。
    3. NSOperationQueue会尽可能地通过web服务上传MyDataObject。

    似乎我可以使用MyDataObjects的NSMutableArray以及NSKeyed(Un)archiver,其中包含所有尚未上载的项目,并观察所有操作的-isFinished键以从数组中删除项目,但似乎应该有一种更简单的方法,即减少出错的空间,特别是在线程安全方面。

    谁能给我指一下正确的方向吗?

    1 回复  |  直到 12 年前
        1
  •  1
  •   Peter Hosey    17 年前

    每个项目可以添加两个操作。第一个将项目存储到本地存储,第二个将依赖于第一个,并在成功时从本地存储中删除项目。