我正在执行一个简单的PFQuery
来获取一堆Box
个对象(类名)。
我的Box
指向一个名为Toy
的{{1}}对象。
我让我的用户选择一堆玩具,然后搜索只显示带有toy
个对象的Box
个对象。
所以我最终获得了Toy
NSArray
个PFObject
类型的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
,让我只能获取具有特定指针结果的对象,如解释的那样。
答案 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 *)]
格式字符串,请不要使用NSPredicate
。 NSPredicate
确实不喜欢它,并且通常无法解析您的格式。