【发布时间】:2019-10-04 10:35:37
【问题描述】:
我有带有变量的对象 Dog
名称:字符串, 年龄:诠释
我有 [Dog] 那里有 5 条狗
我想为搜索栏做谓词,其中 dog.name 包含输入值
下面的代码失败,错误说“没有键名”
let searchPredicate = NSPredicate(format: "SELF Any.name CONTAINS[c] %@", text)
let array = (data as NSArray).filtered(using: searchPredicate)
let productSearchResults = array
【问题讨论】:
-
你真的需要 NSPredicate 吗?该属性可能被标记为@objc 属性。 Swift Native Array 的
filter()方法而不是 NSArray 呢? -
yourArray.filter { $0.name.contains("dogname") }
-
$0.name.range(of: "n", options: .caseInsensitive) != nil,因为它是CONTAINS[c],所以不区分大小写。