【发布时间】: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