【发布时间】:2021-01-23 06:23:03
【问题描述】:
我已经搜索了答案,但不幸的是,我尝试过的任何方法都不起作用。
我的情况如下:
我有一组关键字,我正在构建一个 NSPredicate 以过滤来自 CoreData 的数据。下面的代码:
var strKeywordsOrFilter = "(1 == 1)" //just an initial {true} statement to assist with the OR conditional
for intIndex in 0...pInputWords.count - 1
{
let strKeyword = "'" + pInputWords[intIndex] + "'"
strKeywordsOrFilter = strKeywordsOrFilter + " OR (imageDescr CONTAINS[c] " + strKeyword + ")"
}
imageDescr 是我的 CoreData 中的实体属性之一。
我想要完成的是为数组pInputWords 中存在的尽可能多的关键字创建一个连接的 OR 条件字符串。
当我调试打印变量strKeywordsOrFilter 时,它在任何单引号字符之前不包含任何反斜杠,例如
(1 == 1) OR (imageDescr CONTAINS[c] 'camping') OR (imageDescr CONTAINS[c] 'lake')
但是当它到达“谓词”命令时是同一个变量,它在每个单引号之前都包含反斜杠,例如
(1 == 1) OR (imageDescr CONTAINS[c] \'camping\') OR (imageDescr CONTAINS[c] \'lake\')
我尝试了许多解决方法,但似乎没有什么能摆脱“\”。 任何帮助将不胜感激,因为我真的被卡住了!
【问题讨论】:
-
“当它到达“谓词”命令时”是什么意思?
标签: swift core-data nspredicate