Панель поиска с помощью swiftUI
Помогите, пожалуйста, исправить ошибку (Value of type 'Pills' has no member 'contains'). Нужно сделать поиск по списку.
import SwiftUI
struct SearchView: View {
@EnvironmentObject private var userData: UserData
@State private var searchText : String = ""
var body: some View {
List {
SearchBar(text: $searchText)
ForEach(userData.pillss.filter {
self.searchText.isEmpty ? true : $0.contains(self.searchText)
}) { pills in
NavigationLink(
destination: PillsDetail(pills: pills)
.environmentObject(self.userData)
) {
PillsRow(pills: pills)
}
}
}
}
}
``
Ответы (1 шт):
Автор решения: schmidt9
→ Ссылка
Метод contains является встроенным методом массива (userData.pillss), $0 у вас очевидно является объектом класса/структа Pills и не является массивом
вам нужно в нем либо добавить публичное свойство, содержащее текст для сравнения, скажем
var text: String, тогдаself.searchText.isEmpty ? true : $0.text == self.searchTextили добавьте в
Pillsметодcontainsи уже в нем производите сравнениеfunc contains(_ text: String) -> Bool { self.text == text }