我遇到了有关NSPredicate语法的问题。我想按类类型过滤对象数组。
class ClassA: NSObject {}
class ClassB: ClassA {}
class ClassC: ClassA {}
let array: [ClassA] = [ClassB(), ClassC()]
现在我想使用NSPredicate来获取仅使用ClassB项的过滤数组。
我可以使用Blocks这样做,它会是这样的:
let predicate = NSPredicate { (object, nil) -> Bool in
return object is ClassB
}
虽然这是一种合法的方法,但我也希望使用NSPredicate(格式:)来做同样的事情。
在其他尝试中,我未能成功尝试以下内容:
let predicate = NSPredicate(format: "self = %@", [ClassB.self])
let predicate = NSPredicate(format: "SELF isKindOfClass: %@", [ClassB.self])
我认为这一定只是一个语法问题,但我正在寻找一个多小时来解决这个问题而没有结果。
提前致谢。
答案 0 :(得分:0)
这应该有效:
let predicate = NSPredicate(format: "class = %@", ClassB.self)