【问题标题】:Parse, offline caching of an entire catalogue (iOS application)解析、离线缓存整个目录(iOS 应用程序)
【发布时间】:2013-05-30 10:48:51
【问题描述】:

我正在编写一个支持 Parse 的应用程序,它会下拉包含在类别中的媒体对象目录(具有属性和关联的 PFFile)。 (一个对象可以有很多类别,一个类别有很多对象)。

该应用程序可以很好地在线运行,并且通过使用 Parse Cache 它还具有一些离线功能。 (即,如果您在离线时选择查看您之前在线查看过的类别中的所有对象 - 然后会显示一些结果)。

但是,我需要让用户在离线时能够访问他们之前在线时未查看过的类别中的对象。 (即能够执行未缓存的查询)。我最初编写了一个启动/同步过程,它将对类别和对象执行“fetchAll”——希望这将为我提供对所有内容的离线访问。但是,情况似乎并非如此,因为当我在离线时执行新的过滤查询时,我没有得到任何结果。 (基本上就是这里描述的问题:https://parse.com/questions/offline-subquery-of-a-cached-query)。

所以我的问题是,实现这一目标的最佳方法是什么?我考虑了几个不同的选择:

  • Ray Wenderlich 有一个关于为核心数据创建同步处理程序的教程 - Parse。但这似乎很复杂,并且不处理关系,这对于这个问题至关重要

  • https://github.com/itsniper/FTASync - 还没有深入研究

  • 每次重用 fetchAll 查询结果,然后过滤结果数组。但是,这可能会很慢,而且我在离线时也不会有每个对象的 PFRelations。

  • 在启动/同步时运行所有可能的查询,以便我始终可以离线获得结果。但是,应用程序最终会在类别中包含类别,因此这可能是合理数量的查询。

欢迎提出任何意见/建议。 谢谢

【问题讨论】:

  • 你最终选择了什么解决方案?
  • 我们在启动时循环以填充缓存。因此,当用户进入该类别时,即使他们当时处于离线状态,也可能已经缓存了显示对象所需的查询。同步到核心数据可能是一种更好的方法,但有点违背了使用 Parse 的意义。似乎他们正在研究可能有用的东西,但目前只有 Android:blog.parse.com/2014/04/30/…

标签: ios web-services caching parse-platform offline-caching


【解决方案1】:

根据我在类似案例中使用 Parse 的经验,我在缓存查询中获取所有数据,然后,我必须在代码中使用 NSMutableArrays 过滤/排序/等数组,因为我需要自己。

我认为目前无法通过离线缓存查询抛出查询。

只有一件事:请记住 Parse 查询的结果限制为 1000 个。默认设置为 100,但您可以使用 setLimit 修改它。如果您有超过 1000 个结果,您可以使用setSkip 方法在不同的查询中获取它们..

希望对你有帮助

【讨论】:

  • 感谢您的回复。一种针对离线缓存数据发出不同查询的方法将是一个有用的补充。如果有网络连接,我已经通过循环并在启动时执行未来的查询来实现一个解决方案,以填充每个“类别”的对象缓存。我得出的结论是过滤 fetchAll 查询可能对我不起作用,因为事实上我在类别和类别对象之间存在 pfRelation(例如,如果我 fetchAll 类别有 1 个查询,而 fetchAll 类别对象有 1 个查询,这不会似乎给了我两个实体之间的联系)
猜你喜欢
  • 1970-01-01
  • 2011-07-31
  • 2019-07-08
  • 2013-03-04
  • 2011-12-28
  • 2013-10-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
相关资源
最近更新 更多