解析引脚名称不相等的PFQuery

时间:2015-01-23 16:55:33

标签: ios objective-c parse-platform pfquery

我正在使用Parse为我的应用添加离线支持,并且他们的saveEventuallydeleteEventually很糟糕而且效果不佳,我需要手动管理。哪个对我好。

无论如何,我已经做到这一点,所以我将带有名称的对象固定到要删除的名称。如果我在重新联机时固定要删除的对象,我仍然希望将其隐藏在当前结果中,因为它将被删除。

那么我该如何制作PFQuery,以便在针名不等于我的deletePinName群时不会获取结果。

所以我想要获取除固定被删除的所有内容。

修改

我找到了一种解决这个问题的潜在方法,但它看起来似乎并不是因为我无法解决的问题。

我简单地创建另一个查询,该查询将所有固定的对象删除,然后使我的主查​​询不包括这些结果。

PFQuery *mainQuery = [PFQuery queryWithClassName:@"Box"];

PFQuery *subQuery = [PFQuery queryWithClassName:@"Box"];
[subQuery fromPinWithName:@"DeleteTheseObjectsPin"];

[mainQuery whereKey:@"objectId" doesNotMatchKey:@"objectId" inQuery:subQuery];

有意义吗?获取与此子查询中的对象不匹配的对象,这意味着我固定要删除的对象。

那么为什么当我将这个whereKey约束添加到我的主查询中时,我得到的结果为零?

1 个答案:

答案 0 :(得分:0)

对于您的用例,我不认为使用具有复杂约束的PFQuery来过滤固定对象是一个很好的策略。您只需要执行普通的PFQuery即可从Parse获取所需的任何对象,并在将返回的数据呈现给用户之前,使用您的引脚列表在本地过滤它们。对于要删除的引脚对象,可以从PFQuery结果中过滤掉它们;要保存pin对象,可以将本地副本添加到PFQuery结果中。为了使引脚列表变小,在每个应用程序启动期间,您可以触发后台线程以检查任何引脚对象是否在Parse上,具体取决于它是删除引脚还是保存的引脚,您可以保留它或从引脚列表中删除它基于Parse查询结果。