gpt4 book ai didi

ios - swift 3 : Use NSPredicate(format:) to filter objects by type/class

转载 作者:行者123 更新时间:2023-11-30 12:20:03 26 4
gpt4 key购买 nike

我遇到了有关 NSPredicate 语法的问题。我想按对象的类类型过滤对象数组。

class ClassA: NSObject {}
class ClassB: ClassA {}
class ClassC: ClassA {}

let array: [ClassA] = [ClassB(), ClassC()]

现在我想使用 NSPredicate 来获取仅包含 B 类项目的过滤数组。

我可以使用 Blocks 来做到这一点,它会是这样的:

let predicate = NSPredicate { (object, nil) -> Bool in
return object is ClassB
}

虽然这是一种合法的方法,但我也想用 NSPredicate(format:) 做同样的事情。

除了其他尝试之外,我还尝试了以下方法但未成功:

let predicate = NSPredicate(format: "self = %@", [ClassB.self])
let predicate = NSPredicate(format: "SELF isKindOfClass: %@", [ClassB.self])

我认为这一定只是一个语法问题,但我花了一个多小时来解决这个问题,但没有结果。

提前致谢。

最佳答案

这应该有效:

let predicate = NSPredicate(format: "class = %@", ClassB.self)

这是关于谓词的文档页面 - https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Predicates/Articles/pCreating.html#//apple_ref/doc/uid/TP40001793-CJBDBHCB

关于ios - swift 3 : Use NSPredicate(format:) to filter objects by type/class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44909744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com