Swift - 有没有办法在连接的字符串中包含单引号 (')?
Swift - Is there a way to include single quotes (') in a concatenated string?
我已经搜索过答案,但不幸的是,我尝试过的任何方法都没有奏效。
我的情况如下:
我有一组关键字,我正在构建一个 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\')
我已经尝试了很多解决方法,但似乎都无法摆脱“\”。
任何帮助将不胜感激,因为我真的被困住了!
无需手动构建查询,也无需担心引号。您可以改用复合谓词和标准 predicate formatting(%@
用于值,%K
用于键):
let predicates = pInputWords.map { word in
NSPredicate(format: "imageDescr CONTAINS[c] %@", word)
}
let finalPredicate = NSCompoundPredicate(orPredicateWithSubpredicates: predicates)
// Which gives:
// imageDescr CONTAINS[c] "camping" OR imageDescr CONTAINS[c] "lake"
ps。您的查询字符串在提供给谓词时会产生相同的结果,这似乎没问题
我已经搜索过答案,但不幸的是,我尝试过的任何方法都没有奏效。
我的情况如下:
我有一组关键字,我正在构建一个 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\')
我已经尝试了很多解决方法,但似乎都无法摆脱“\”。 任何帮助将不胜感激,因为我真的被困住了!
无需手动构建查询,也无需担心引号。您可以改用复合谓词和标准 predicate formatting(%@
用于值,%K
用于键):
let predicates = pInputWords.map { word in
NSPredicate(format: "imageDescr CONTAINS[c] %@", word)
}
let finalPredicate = NSCompoundPredicate(orPredicateWithSubpredicates: predicates)
// Which gives:
// imageDescr CONTAINS[c] "camping" OR imageDescr CONTAINS[c] "lake"
ps。您的查询字符串在提供给谓词时会产生相同的结果,这似乎没问题