NSPredicate - 转换参数?

NSPredicate - convert arguments?

知道如何在 Swift 3 中执行此操作吗?

let number: NSArray = [123, 456, 678]
let check = "1"
let predicate = NSPredicate(format: "number.stringValue CONTAINS %@", check)

number.filtered(using: predicate)

问题是 .stringValue。知道如何在不使用块谓词和不使用标准过滤器函数的情况下使用上述谓词来完成此操作吗?

数组变量的名称(此处:"number")不是数组元素的关键路径的一部分,因此它只是:

let number: NSArray = [123, 456, 678]
let check = "6"
let predicate = NSPredicate(format: "stringValue CONTAINS %@", check)

print(number.filtered(using: predicate)) // [456, 678]

或者用"SELF",如果你想更明确一点:

let predicate = NSPredicate(format: "SELF.stringValue CONTAINS %@", check)

"SELF" 关键字在 "Predicate Programming Guide" 中的 Predicate Format String Syntax 中有解释:

SELF
Represents the object being evaluated.