#arrays #swift #filter
Вопрос:
я хочу отфильтровать массив структур, которые были:
var fullProveedoresFiltrados:[MCCollectionServicess]?
моя структура такова:
struct MCServices: Decodable {
var ciudad: String?
var code: String?
var name: String?
var commission: String?
var typeCommission: String?
var balance: Bool?
var typeService: String?
var reference: String?
var status: String?
var image: String?
var mcPlace : String?
var provisioningCommission:String?
}
struct MCCollectionServicess: Decodable {
var title: String?
var data: [MCServices]?
}
я хочу получить только один элемент фильтрации по data.name и фильтрация всех разделов по названию, но мой фильтр возвращает весь раздел, когда я пытаюсь получить только элемент по имени.
мои поиски:
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
guard let searchText = searchController.searchBar.text else { return }
fullProveedoresFiltrados = fullProveedores!.filter({ proveedor -> Bool in
for item in 0..<proveedor.data!.count {
if proveedor.data![item].name!.forSortingTarjeta.lowercased().localizedCaseInsensitiveContains(searchText.lowercased().forSortingTarjeta) {
return proveedor.data![item].name!.forSortingTarjeta.lowercased().localizedCaseInsensitiveContains(searchText.lowercased().forSortingTarjeta)
}
}
return proveedor.title!.forSortingTarjeta.lowercased().localizedCaseInsensitiveContains(searchText.lowercased().forSortingTarjeta)
})
changeButton.isHidden = fullProveedoresFiltrados!.count != 0 ? false : true
noFoundResult.isHidden = fullProveedoresFiltrados!.count != 0 ? true : false
collectionView.reloadData()
}
Комментарии:
1. Не связано, но почему все необязательно? Объявите все объекты, которые вы все равно заставляете разворачивать, необязательными, например
var fullProveedoresFiltrados = [MCCollectionServicess]()
2. Может быть, вы могли бы добавить некоторые примеры данных, пример поиска и ожидаемый результат