【问题标题】:iPhone Data Best Practices - caching vs remoteiPhone 数据最佳实践 - 缓存与远程
【发布时间】:2011-01-17 17:10:58
【问题描述】:

我正在开发一个 iPhone 应用程序,它使用用户帐户和 Web API 从网站获取结果 (json)。结果是用户事件的列表。 只是寻找一些建议或策略 - 何时缓存以及何时进行 api 调用......以及 iPhone SDK 是否内置任何东西来处理这些场景。

当我从服务器获取结果时,它们会在控制器中填充一个数组。在 UI 中,您可以从表格列表视图转到单个事件结果的视图 - 因此两个控制器共享对同一事件对象的引用。 棘手的是用户可以更改事件的详细信息。在这种情况下,我会为用户的更改制作本地 Event 对象的副本,以防他们出错。如果 api 调用成功通过并更新服务器上的事件,我会从事件副本中获取这些本地更改,并将原始事件对象设置为与设置器匹配。 我让原始控制器观察是否对本地 Event 对象进行了任何更改,以便它可以在 UI 中反映它。 这是正确的做事方式吗?我不想进行太多 API 调用来从服务器重新加载数据,但是在用户进行更新后,我是否应该再次使用 API 调用拉下列表? ...我要小心我的本地对象不会与远程对象不同步。 任何建议表示赞赏。

【问题讨论】:

    标签: ios iphone cocoa-touch caching


    【解决方案1】:

    我在自己构建的应用中采用了类似的方法。我只是用 Core Data 制作了一个远程数据模型的重复版本,并在后端使用 etags 来防止同步问题(在我的情况下,创建重复记录是可以的)。

    听起来您对此采取了很好的方法。

    【讨论】:

      【解决方案2】:

      前段时间,我开发了一个 iOS 应用程序,在该应用程序中,我几乎需要将数据存储在服务器和本地,以避免多次网络调用,并且用户可以毫不拖延地查看他们的信息。

      在该应用程序中,用户可以存储照片、节点、签到和社交媒体帖子,使用所有这些数据,应用程序可以形成一个漂亮的时间线。所以我们所做的是,我们在本地拥有一切,每当用户手机进入某个 WIFI 区域时,我们开始将该数据上传到服务器并同步(本地和远程)数据库。

      请注意,当只有一个用户可以访问此数据时,此方法效果很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-28
        • 2015-05-31
        • 2010-09-25
        • 2010-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多