ios parse _user指针等于用户ID?

时间:2015-09-12 05:07:26

标签: ios objective-c parse-platform

我有一个表格,其中的列是_User的pinter。我想检查一个字符串是否等于我在表中的用户ID。

enter image description here

在此示例中,我想检查iSMSxjAnvJ是否等于用户列。 这是我的代码:

PFQuery *query2 =  [PFQuery queryWithClassName:@"Friends"];
[query2 whereKey:@"user" equalTo:self.friendID];

[query2 findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
           for (PFObject *friendRecord in objects) {
                        // do something with a single example object here.
           }
}];

但是我收到了这个错误:

[Error]: pointer field user needs a pointer value (Code: 102, Version: 1.7.5)

我需要将此指针值更改为字符串类型以进行比较。一种方法是查询我的用户表并获取字符串值。还有更好的办法吗?

1 个答案:

答案 0 :(得分:4)

equalTo的操作数:对于指针列是PFObject,可以是完整对象,也可以是只有objectId(解析世界中的“指针”)的空PFObject。换句话说,假设您有一个真正的PFUser对象......

PFUser *friend = // imagine you have this somehow.

要测试朋友实例的用户是否为friend,请说...

PFQuery *query2 =  [PFQuery queryWithClassName:@"Friends"];
[query2 whereKey:@"user" equalTo:friend];

但是如果你没有物体怎么办?就像名称friendId暗示的那样,如果你只有一个objectId字符串怎么办?两个答案:

简答:将objectId变为指针......

PFUser *friendPointer = [PFUser objectWithoutDataWithClassName:@"_User" objectId:self.friendID];
PFQuery *query2 =  [PFQuery queryWithClassName:@"Friends"];
[query2 whereKey:@"user" equalTo:friendPointer];

答案很长:从问题开始:为什么你只有对象id,为什么你没有真正的对象?将self上的friendId(字符串)列更改为friend列(指向_User的指针)。然后...

// put a column called friend on self. Make it a pointer to _User
PFUser *friend = self.friend;  // we imagined this before, now its real!
PFQuery *query2 =  [PFQuery queryWithClassName:@"Friends"];
[query2 whereKey:@"user" equalTo:friend];