Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.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
Swift NSPredicate中的一个请求中包含多个案例_Swift_Request_Nspredicate - Fatal编程技术网

Swift NSPredicate中的一个请求中包含多个案例

Swift NSPredicate中的一个请求中包含多个案例,swift,request,nspredicate,Swift,Request,Nspredicate,我在Swift 3中使用NSPredicate(在Xcode中)。我试图强制te请求一次搜索多个单词。例如:[b,c,t]人们会寻找骨头,圆锥体和音调。我怎样才能做到这一点 let conv = "[b,c,t]one" let pred = NSPredicate(format: "name CONTAINS[cd] %@", conv) request.predicate = pred 我试着用[z,ż,ź]im[n,ż]y代替齐姆尼,齐姆尼,齐姆尼,齐姆尼等等。它似乎不起作用。这种查询的

我在Swift 3中使用NSPredicate(在Xcode中)。我试图强制te请求一次搜索多个单词。例如:[b,c,t]人们会寻找骨头,圆锥体和音调。我怎样才能做到这一点

let conv = "[b,c,t]one"
let pred = NSPredicate(format: "name CONTAINS[cd] %@", conv)
request.predicate = pred
我试着用[z,ż,ź]im[n,ż]y代替齐姆尼,齐姆尼,齐姆尼,齐姆尼等等。它似乎不起作用。这种查询的语法是什么?

您可以将“MATCHES”操作符与正则表达式模式一起使用。 例如,在

let pattern = "[bct]one"
let pred = NSPredicate(format: "name MATCHES %@", pattern)
“[bct]”是a,与任何字符“b”、“c”匹配, “t”,以便谓词匹配字符串“bone”、“cone”和“tone”。

您可以使用带有正则表达式模式的“matches”操作符。 例如,在

let pattern = "[bct]one"
let pred = NSPredicate(format: "name MATCHES %@", pattern)
“[bct]”是a,与任何字符“b”、“c”匹配,
“t”,以便谓词与字符串“bone”、“cone”和“tone”匹配。

是否尝试将
CONTAINS
替换为
LIKE
?是的,它也不起作用。这个语法([b,c,t]one)正确吗?包含带“zim”的[cd]可以工作,就像带“zim”的[cd]不能工作一样。两者都有,我不工作。“Zimna woda”是我的字段,我正在过滤。@BartoszWoźniak:
[cd]
代表不区分大小写和重音的搜索,所以带有“zimny”的“name CONTAINS[cd]@”应该与“zimny”、“zimny”、“żimny”和“żimny”匹配。好了,现在它工作正常了。[cd]解决了这个问题。但是如果。。。我想查找以4个字母中的一个开头的每个单词。我是否必须创建4个不同的请求并将它们与“或”合并?或者我可以使用像[b,d,p,l]ump这样的东西吗?我试过用像
这样的
替换
CONTAINS
?是的,它也不起作用。这个语法([b,c,t]one)正确吗?包含带“zim”的[cd]可以工作,就像带“zim”的[cd]不能工作一样。两者都有,我不工作。“Zimna woda”是我的字段,我正在过滤。@BartoszWoźniak:
[cd]
代表不区分大小写和重音的搜索,所以带有“zimny”的“name CONTAINS[cd]@”应该与“zimny”、“zimny”、“żimny”和“żimny”匹配。好了,现在它工作正常了。[cd]解决了这个问题。但是如果。。。我想查找以4个字母中的一个开头的每个单词。我是否必须创建4个不同的请求并将它们与“或”合并?或者我可以用[b,d,p,l]ump这样的词吗?这正是我想要的答案:d这正是我想要的答案:d