class MyClass {
var result: Bool
init(result: Bool) {
self.result = result
}
}
我的[MyClass]
中有一个数组(ArrayController
)通过绑定连接,我需要按属性result
过滤此数组。
例如,这些对象中有一半的结果为false,我只想显示这些具有result == true
的项目,但必须使用NSPredicate完成,我不知道如何制作这个谓词,任何想法?
为了说清楚,我需要使用filterPredicate
NSArrayController
变量来过滤此数组。
答案 0 :(得分:1)
首先,你的类MyClassmust符合NSObject, 这将声明变为,
class MyClass: NSObject {
var result: Bool
init(result: Bool) {
self.result = result
}
}
然后您可以将NSPredicate应用为
let bPredicate: NSPredicate = NSPredicate(format: "result contains[cd] %@", true)
let searchArray = yourArray.filtered(using: bPredicate) as NSArray
答案 1 :(得分:0)
好的,我自己解决了问题。这是代码
monolog:
handlers:
security:
level: INFO
type: stream
path: '%kernel.logs_dir%/deprecated.log'
channels: [php]
表示动态变量
arrayController.filterPredicate = NSPredicate { object, _ in
(object as? MyClass)?.result
}
答案 2 :(得分:0)
用户过滤器而不是NSPredicate
'let filteredArray = yourArray.filter({$0.result == true})'