Swift UISearchbar 如何搜索 属性 的 class

Swift UISearchbar how to search a property of a class

我正在尝试使用 swift 实现 UISearchBar,我能找到的所有示例都与搜索字符串数组有关。

使用一个随机示例,假设我有一个名为 'Car' 的 class,其属性为 'manufacturer' 和 'model'

我有一系列汽车,名为 'Cars'

我想实现一个搜索栏,通过将字符串与 Cars 数组中的 'manufacturer'属性 进行比较来过滤结果。

到目前为止,我可以连接有关过滤结果数组、table 查看结果等的所有其他内容。我无法解决的问题是:

  filteredManufacturers = Cars.filter({ (text) -> Bool in
        let tmp: NSString = text as NSString
        let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive)

return range.location != NSNotFound })

我遇到的问题是我不知道如何只引用 class 的 属性。如果我输入:

filteredManufacturers = Cars.manufacturers.filter....

问题是 'Cars' 和 if 没有 属性 调用 'manufacturers'。我改变它。并尝试参考。 class 属性 'Car.manufacturers' 那么显然它没有全部。在那里过滤实际的汽车数据。有没有人有什么建议。

我猜一种方法是将所有制造商数据复制到一个数组中,我可以搜索这个,但我必须参考。引用其 class 的初始索引,以及。看来久违了。

首先,您可以在不使用 Objective-C NSString 东西的情况下重写您原来的方法:

filteredManufacturers = Cars.filter {
    [=10=].lowercased().contains(searchText.lowercased())
}

厂家搜索就可以了,很相似的方式:

filteredManufacturers = Cars.filter {
    [=11=].manufacturer.lowercased().contains(searchText.lowercased())
}

(假设在Car中有一个名为manufacturer的实例String