在我的PFUser
课程中,每个用户都有一个名为twitterId
的密钥,其中包含他们的推特ID。在我从Twitter获得currentUser
的朋友列表后,我无法通过Parse查询找到这些值,尽管这些ID已分配给PFUsers。
我真的不明白为什么会发生这种情况,因为当我采用friends
数组的第一项并使用equalTo
代替containedIn
时,它的效果非常好。< / p>
这是我想要使用的解决方案,但不起作用。数组有值,这些值分配给其他用户,因此我不知道错误是什么。如果有人能解释我的错误,我真的很感激,因为这对我来说似乎是正确的。
- (void) listTwitterFriends:(NSArray *)friends {
PFQuery *queryFriends = [PFUser query];
[queryFriends whereKey:@"twitterId" containedIn:friends];
[queryFriends findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
NSLog(@"OBJECTS AFTER QUERY %@", objects);
}];
}
这是工作版
- (void) listTwitterFriends:(NSArray *)friends {
NSString *devSt = [NSString stringWithFormat:@"%@", friends[0]];
NSLog(@"First friend ID %@", devSt);
PFQuery *queryFriends = [PFUser query];
[queryFriends whereKey:@"twitterId" equalTo: devSt];
[queryFriends findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
NSLog(@"OBJECTS AFTER QUERY %@", objects);
}];
}
答案 0 :(得分:1)
遇到同样的问题,但是看起来我正在添加到字符串数组中的字符串来比较可变,改变的地方
[friends addObject:friend[@"id"]];
至[friends addObject:[friend[@"id"] copy]];
为我工作。
确保传递给listTwitterFriends:
的数组包含与您解析相关键值类型相匹配的对象,注意可变版本。