【发布时间】:2021-02-18 17:09:25
【问题描述】:
我在一个新项目中,我应该过滤此功能中的其他项目。特别是我必须过滤地址和城市
public var name: String
public var email: String
public var address: String?
public var shopName: String?
public var city: String?
就目前而言,我必须再次按地址和城市添加。这项工作
filteredRestaurants = restaurants?.filter{ (($0.shopName ?? $0.name).lowercased().contains(searchText.lowercased()) || $0.name.lowercased().contains(searchText.lowercased())) && (($0.getType() == ESERCENTE_TYPE.GDO && gdoOption!) ||
($0.getType() == ESERCENTE_TYPE.RISTORANTE && restaurantOption!)) }
但是如果我也添加了这个就不行
$0.address.lowercased().contains(searchText.lowercased())
更新:
试试这个,但它完全破坏了搜索。它甚至不再按名称过滤
filteredRestaurants = 餐馆?.filter{ (($0.shopName ?? $0.name).lowercased().contains(searchText.lowercased()) || $0.name.lowercased().contains(searchText.lowercased( ))) && (($0.getType() == ESERCENTE_TYPE.GDO && gdoOption!) || ($0.getType() == ESERCENTE_TYPE.RISTORANTE && restaurantOption!)) || (($0.address?.lowercased().contains(searchText.lowercased())) != nil)
【问题讨论】:
-
但是如果我也添加这个没有这是什么意思?
-
@Sh_Khan 没有填写我并给我一个错误,说要插入“??默认值”但我不知道用什么代替默认值
-
也许你应该用文字解释你想要达到的目标和/或一个例子。还要确保在过滤器代码中包含您正在使用的所有属性(或为清晰起见从过滤器代码中删除它们),例如
getType -
@JoakimDanielson 我正在尝试过滤对商店的搜索。如果我搜索商店名称,它会将我过滤掉。我必须添加通过地址进行搜索的可能性