2

我正在编写一个支持 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。

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

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

4

1 回答 1

1

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

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

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

希望能帮助到你

于 2013-05-30T15:55:39.003 回答