Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parse platform 使用nil选项解析NSPredicate以查找任何对象_Parse Platform - Fatal编程技术网

Parse platform 使用nil选项解析NSPredicate以查找任何对象

Parse platform 使用nil选项解析NSPredicate以查找任何对象,parse-platform,Parse Platform,我曾尝试搜索web,但没有遇到任何关于NSPredicate驱动查询的默认回退的主题 例如,我想按类别查询一些笑话 所以我得到了这个小助手方法: - (PFQuery)queryJokesWithCategory:(PFObject *)category language:(NSString *)language { NSPredicate *predicate = [NSPredicate predicateWithFormat:@"language = %@ AND categor

我曾尝试搜索web,但没有遇到任何关于NSPredicate驱动查询的默认回退的主题

例如,我想按类别查询一些笑话

所以我得到了这个小助手方法:

- (PFQuery)queryJokesWithCategory:(PFObject *)category language:(NSString *)language {

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"language = %@ AND category = %@", language, category];
    PFQuery *jokes = [PFQuery queryWithClassName:@"Joke" predicate:predicate];
    return jokes;
}
如果我在这一类中通过了零分,我会期望得到所有的笑话,但它不会给我一个笑话。像这样:

PFQuery *jokesQuery = [self queryForJokesWithCategory:nil language:@"EN"];

有什么方法可以像我的方法那样做吗?我遗漏了任何特定的关键字?

在这种情况下,您要做的是检查类别键是否存在,在您的情况下,它始终存在,因此您可以运行此查询:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"language = %@ AND category IN SELF", language];
PFQuery *jokes = [PFQuery queryWithClassName:@"Joke" predicate:predicate];
return jokes;
此查询将在笑话表中查询指定语言的所有笑话,而不考虑类别,仅确保已定义类别

编辑:

我不知道你的应用程序是如何工作的,但听起来用户需要输入一个类别和一种语言,然后你需要根据他们的输入构建一个查询。您必须检查他们的类别字段是否为空,然后执行我在上面发布的查询,如果不是空的,则使用原始查询。不过,我不认为您可以在一个查询中完成这一点


另一个建议是,可以将“类别”字段设置为必填字段,或者只使用“全部查看”按钮来查看所选语言下的所有笑话。

因此,您只想获取英语中的笑话,而不是特定类别的笑话,对吗?最终是的。只是如果category设置为none,那么就不需要查询category=this或category=that。我不是有意那样做的。我只是动态地检查nil。只是想知道是否有一个更简单的方法笑话有一个类别,是吗?数据浏览器中没有未定义类别的笑话?是,每个笑话都有一个类别。如果没有合适的东西,它将被归入密斯。例如,我该如何使用它来查询“动物”类别中的笑话?对我来说,这看起来只是确保了一个类别exists@Chrene我不知道你的应用程序是如何工作的,但听起来用户需要输入一个类别和一种语言,然后你需要根据他们的输入构建一个查询。您必须检查他们的类别字段是否为空,然后执行我在上面发布的查询,如果不是空的,则使用原始查询。不过,我认为你不可能在一个查询中完成这一点。但太糟糕了。我们会用你所说的更新你的答案,我会接受的感谢您抽出宝贵的时间course@Chrene谢谢,谢谢!祝你好运