解析PFQuery谓词指针对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解析PFQuery谓词指针对象相关的知识,希望对你有一定的参考价值。

我正在执行一个简单的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,让我只能获取具有特定指针结果的对象,如解释的那样。

答案

我觉得你对自己这么做太难了。如果我正确地阅读你的问题,有一个更简单的方法,你不必使用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

另一答案

换句话说就是使用

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

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

另一答案

事实证明这很简单。

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

以上是关于解析PFQuery谓词指针对象的主要内容,如果未能解决你的问题,请参考以下文章

Python代码阅读(第38篇):根据谓词函数和属性字符串构造判断函数

解析,云代码之前删除

谓词函数函数对象

PFQuery 在 Swift 3 转换后没有运行

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

如何通过 PFQuery 从 Parse 中删除对象