swift使用谓词

时间:2014-08-11 13:03:12

标签: swift predicate

request.predicate=NSPredicate( format:"lnameID= \(light.valueForKey("lnameID"))",nil);

Swift 中使用request.predicate时,会出错。

如何以“xx”xx“xx”格式解决问题?

2 个答案:

答案 0 :(得分:5)

构建谓词时不应使用字符串插值。这会给错 一旦有任何特殊字符(如。),就会在运行时结果或崩溃 单值或双引号中的值。

最好使用%@占位符,例如:

let lnameID = light.valueForKey("lnameID") as String // assuming that it is a string
request.predicate = NSPredicate(format: "lnameID = %@", lnameID)

答案 1 :(得分:0)

您可以在字符串中放置转义引号和转义变量,如下所示:

request.predicate=NSPredicate( format:"lnameID= \"\(light.valueForKey("lnameID"))\"",nil)

或者您可以使用占位符%@,其中生成引号,如Martin R的答案所示。使用转义引号是更快速的原生方式。