解析PFQuery谓词指针对象

问题描述 投票:2回答:3

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

我的Box指向一个名为Toytoy对象。

我让我的用户选择一堆玩具,然后搜索只显示Box对象与那些Toy对象。

所以我最终得到了NSArray类型为PFObjectToy。我有一个对象的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,让我只能获取具有特定指针结果的对象,如解释的那样。

ios objective-c parse-platform pfquery
3个回答
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
投票

换句话说就是使用

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

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


0
投票

事实证明这很简单。

如果要创建[NSString stringWithFormat:(NSString *)]格式字符串,请不要使用NSPredicateNSPredicate真的不喜欢它,往往无法解析你的格式。

© www.soinside.com 2019 - 2024. All rights reserved.