PFQuery whereKey:containedIn:query不起作用

时间:2015-02-10 15:11:26

标签: ios objective-c parse-platform

在我的PFUser课程中,每个用户都有一个名为twitterId的密钥,其中包含他们的推特ID。在我从Twitter获得currentUser的朋友列表后,我无法通过Parse查询找到这些值,尽管这些ID已分配给PFU​​sers。

我真的不明白为什么会发生这种情况,因为当我采用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);

    }];
}

1 个答案:

答案 0 :(得分:1)

遇到同样的问题,但是看起来我正在添加到字符串数组中的字符串来比较可变,改变的地方 [friends addObject:friend[@"id"]];[friends addObject:[friend[@"id"] copy]];为我工作。 确保传递给listTwitterFriends:的数组包含与您解析相关键值类型相匹配的对象,注意可变版本。