我有一个复合查询,如下所示。Parse.com - 奇怪的includeKey问题
- (PFQuery *)queryForPhotos {
if (![PFUser currentUser]) {
PFQuery *query = [PFQuery queryWithClassName:kPAPPhotoClassKey];
[query setLimit:0];
return query;
}
// Query for users with the same language level
PFQuery *sameLevelUsersQuery = [PFUser query];
[sameLevelUsersQuery whereKey:kWSUserLanguageLevelKey equalTo:[[PAPCache sharedCache] languageLevelForUser:[PFUser currentUser]]];
sameLevelUsersQuery.cachePolicy = kPFCachePolicyNetworkOnly;
sameLevelUsersQuery.limit = 1000;
PFQuery *photosFromSameLevelUsersQuery = [PFQuery queryWithClassName:kPAPPhotoClassKey];
[photosFromSameLevelUsersQuery whereKey:kPAPPhotoUserKey matchesQuery:sameLevelUsersQuery];
[photosFromSameLevelUsersQuery whereKeyExists:kPAPPhotoPictureKey];
[photosFromSameLevelUsersQuery whereKey:kWSUniversalIsDeletedKey notEqualTo:[NSNumber numberWithBool:YES]];
[photosFromSameLevelUsersQuery includeKey:kWSPhotoCommentObjectForTitleKey]; // THE INCLUDED KEY IN QUESTION
[photosFromSameLevelUsersQuery orderByDescending:@"createdAt"];
// A pull-to-refresh should always trigger a network request.
[photosFromSameLevelUsersQuery setCachePolicy:kPFCachePolicyNetworkOnly];
return photosFromSameLevelUsersQuery;
}
如果我离开这一行:
[photosFromSameLevelUsersQuery includeKey:kWSPhotoCommentObjectForTitleKey]; // THE INCLUDED KEY IN QUESTION
然后我只得到1包含在该领域的commentObject photoObject。然而,数据库中的(当前)26张照片中有3张在该领域有评论,因此我应该在该领域获得3张照片。一个commentObject会加载所有的字段。然而,如果我遗漏了那条includeKey
行,那么在该字段中有某些东西的所有3个photoObjects都会在该字段中返回一个commentObject。但是,在这种情况下,对象是空的,我不得不打电话fetchIfNeeded
检索他们的数据。
我宁愿不这样做,并且必须重新加载tableView on callback,如果我能以正确的方式第一次加载数据。
任何想法?
拍摄。在复制/粘贴/清理代码时,我总会遇到一些混合的方法。我运行它的方法现在显示,运行时它是'photosFromSameLevelUsersQuery',所以这不是问题。抱歉。 – Ramsel