2015-09-12 23 views
3

我有一张桌子,里面有一列是_User。我想检查一个字符串是否与我在表中的用户标识相同。ios解析_user指针等于用户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) 

我需要这个指针值更改为字符串类型,以做对比。一种方法是查询我的用户表并获取字符串值。有没有更好的方法?

回答

4

equalTo的操作数:对于指针列是一个PFObject,或者是一个完整的对象,或者是一个只有objectId的空PFObject(解析世界中的“指针”)。换句话说,假设你有AA真正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,你为什么不有:用一个问题开始真实的物体?将自我上的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]; 
+0

“我们以前想象过,现在它真实! :) – Fattie

+0

感谢队友。它工作得很好,除了我不得不改变ACL类的类型。因为当前用户正在写信给另一个用户。 – Bernard