ios - iPhone 数据最佳实践 - 缓存与远程

标签 ios iphone cocoa-touch caching

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

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

最佳答案

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

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

关于ios - iPhone 数据最佳实践 - 缓存与远程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2278402/

相关文章:

ios - 在 MKMapview 执行 SetRegion 动画函数调用时禁用触摸事件

ios - AVPlayer 在缓冲时显示和隐藏加载指示器

ios - UITableView contentOffset 行为异常

iPhone App - 打开网页 - Appstore 审批

iphone - 尝试根据单元格 subview 的文本量计算 UILabel 的帧大小

ios - 为什么我不能在 Swift 中将正确的参数传递给我的静态函数?

ios - echarts(iOS图表)未显示在自定义uitableviewcell中

iphone - 从 sqlite 检索 BLOB 图像

iphone - NSKeyedArchiver 的对象顺序

json - [__NSCFArray objectForKey :]: unrecognized selector sent to instance