Swift UISearchbar如何搜索类的属性

问题描述 投票:0回答:1

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

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

我有一系列叫'Cars'的汽车

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

到目前为止,我可以连接有关过滤结果数组,表视图结果等的所有其他信息。我无法解决的是:

  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})

我的问题是我不知道如何仅引用类的属性。如果输入:

filteredManufacturers = Cars.manufacturers.filter....

存在一个问题,即“汽车”和“如果”没有属性称为“制造商”。我改变它。并尝试参考。类属性“ Car.manufacturers”,那么显然它没有全部。要过滤的实际汽车数据。有人有任何建议吗?

我想一种方法是将所有制造商的数据复制到一个数组中,我可以进行搜索,但是我必须参考它。初始索引以引用其类,以及。似乎很受伤。

swift class search uisearchbar
1个回答
0
投票

首先,无需使用Objective-C NSString即可重写原始方法:

filteredManufacturers = Cars.filter {
    $0.lowercased().contains(searchText.lowercased())
}

可以通过制造商进行搜索是非常相似的方式:

filteredManufacturers = Cars.filter {
    $0.manufacturer.lowercased().contains(searchText.lowercased())
}

(假设在manufacturer中有一个实例类型为StringCar实例属性]

© www.soinside.com 2019 - 2024. All rights reserved.