swift NSPredicate 逻辑或

wel*_*man 2 nspredicate ios swift

我已经使用 NSPredicate 进行了单个字符串替换,但返回包含 StringA 或 StringB 的核心数据记录似乎不是我能弄清楚的。我想要这样的东西:

let filter = NSPredicate(format: ("%K = %@", "type", "StringA") OR ("%K = %@", "type", "StringB"))
Run Code Online (Sandbox Code Playgroud)

但这当然行不通。帮助?

Mar*_*n R 6

您必须指定格式字符串,后跟要替换为格式的以逗号分隔的参数列表:

let filter = NSPredicate(format:"%K = %@ OR %K = %@", "type", "StringA", "type", "StringB")
Run Code Online (Sandbox Code Playgroud)

如果键不是保留字并且不包含特殊字符,那么您可以直接在格式字符串中指定它们:

let filter = NSPredicate(format:"type = %@ OR type = %@", "StringA", "StringB")
Run Code Online (Sandbox Code Playgroud)