Как вы вызываете глобальную функцию в классе координатора?

Я пытаюсь позвонить func fetchWeather() в class Coordinator но я получаю сообщение "Использование неразрешенного идентификатора fetchWeather"ошибка. Вот код:

public func fetchWeather(cityName: String) {
    
    let urlString = "\(ViewModel().weatherURL)&query=\(cityName)"

    ViewModel().getWeatherData(with: urlString)
  }

struct SearchBar: UIViewRepresentable {
  
  @Binding var text: String
  
  class Coordinator: NSObject, UISearchBarDelegate {
    
    
    @Binding var text: String
    
    init(text: Binding<String>) {
      _text = text
    }
    
    func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
      text = searchText
    }
    
    func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {

      fetchWeather(cityName: text)   // !!
    }

  }
  
  func makeCoordinator() -> SearchBar.Coordinator {
    
    return Coordinator(text: $text)
  }
  
  func makeUIView(context: UIViewRepresentableContext<SearchBar>) -> UISearchBar {
    
    let searchBar = UISearchBar(frame: .zero)
    searchBar.delegate = context.coordinator
    searchBar.searchBarStyle = .minimal
    return searchBar
  }
  
  func updateUIView(_ uiView: UISearchBar, context: UIViewRepresentableContext<SearchBar>) {

    uiView.text = text
  }
}

0 ответов

Другие вопросы по тегам