我有一个复合查询的 TableView ,我更新了 Parse,现在它似乎不再工作了。我不确定这是不是 Parse 更新,但情况是这样的:
查询如下(在 PFQueryTableViewController 的 queryForTable 方法(被调用)中):
self.parseClassName = @"Event";
PFQuery *attendeeQuery = [PFQuery queryWithClassName:self.parseClassName];
PFQuery *organizerQuery = [PFQuery queryWithClassName:self.parseClassName];
[attendeeQuery whereKey:@"attendees" containsAllObjectsInArray:[NSArray arrayWithObjects:[PFUser currentUser], nil]];
[organizerQuery whereKey:@"organizer" equalTo:[PFUser currentUser]];
PFQuery *query = [PFQuery orQueryWithSubqueries:@[organizerQuery, attendeeQuery]];
[query includeKey:@"organizer"];
[query whereKey:@"isVisible" equalTo:[NSNumber numberWithBool:YES]];
[query orderByAscending:@"time"];
return query;
当我运行这个查询时,objectsDidLoad 永远不会被调用,我的 TableView 卡在加载状态。请帮忙!
最佳答案
解决方案与我在上面没有包含的一行有关。 我有这个:
if ([self.objects count] == 0) {
query.cachePolicy = kPFCachePolicyCacheThenNetwork;
}
事实证明,在最新的 Parse SDK 和 iOS SDK 中,cachePolicy 被破坏了,因此在使用 where ContainedIn 子句时必须使用 kPFCachePolicyIgnoreCache
来获取结果。
来源:
https://developers.facebook.com/bugs/717037238403238/
关于ios - PFQueryTableViewController 的 PFQuery 或 SubQuery 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27477130/