解析PFQuery谓词指针对象

时间:2015-01-10 17:24:17

标签: ios objective-c parse-platform pfquery

我正在执行一个简单的PFQuery来获取一堆Box个对象(类名)。

我的Box指向一个名为Toy的{​​{1}}对象。

我让我的用户选择一堆玩具,然后搜索只显示带有toy个对象的Box个对象。

所以我最终获得了Toy NSArrayPFObject类型的Toy。我有一个objectId字符串用于对象,我只是创建另一个数组:

PFObject *obj = [PFObject objectWithoutDataWithClassName:@"Toy" objectId:objectId];

现在我可以查询该对象,我想。我尝试使用Box查询NSPredicate个对象,如下所示:

[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"toy = %@", toyObject]];

我的应用崩溃并告诉我它无法解析。所以在添加谓词之前,我改为使用objectId并尝试这样做:

[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"toy.objectId = %@", toyObject.objectId]];

然而,它也不喜欢那种格式。那么我怎样才能创建一个NSPredicate,让我只能获取具有特定指针结果的对象,如解释的那样。

3 个答案:

答案 0 :(得分:1)

我认为你对自己这么做太难了。如果我正确地阅读您的问题,有一种更简单的方法可以做到这一点,您根本不必使用NSPredicate

NSMutableArray *toys = [NSMutableArray array];
// Figure out some way (during selection) to get the "toy" objects into the array
PFQuery *query = [PFQuery queryWithClassName:@"Box"];
[query whereKey:@"toy" containedIn:toys];
[query findObjects... // You should know the rest here

就是这样!好的,简单的,应该找到Box数组中包含toy的所有toys个实例。

答案 1 :(得分:1)

换句话说,只需使用

 PFUser *user = [PFUser currentUser];
 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"fromUser = %@", user];

在这个例子中,“user”是存储在表中的指针,我们在“fromUser”列下搜索它

答案 2 :(得分:0)

原来这很简单。

如果要创建[NSString stringWithFormat:(NSString *)]格式字符串,请不要使用NSPredicateNSPredicate确实不喜欢它,并且通常无法解析您的格式。