##HomeController
private extension HomeViewController { func searchBy(naturalLanguageQuery: String, completion: @escaping([MKPlacemark]) -> Void) { var results = [MKPlacemark]() let request = MKLocalSearch.Request() request.naturalLanguageQuery = naturalLanguageQuery request.region = mapView.region let search = MKLocalSearch(request: request) search.start { (response, error) in guard let response = response else { return } response.mapItems.forEach({ (mapItem) in results.append(mapItem.placemark) }) completion(results) } } }
##HomeController LocationInputViewDelegate
extension HomeController: LocationInputViewDelegate { func executeSearch(query: String) { self.searchBy(naturalLanguageQuery: query) { (placeMarks) in self.searchResultPlaceMarks = placeMarks self.tableView.reloadData() } } func dismiss() { self.dismissLocationInputView { (_) in UIView.animate(withDuration: 0.3) { self.inputActivationView.alpha = 1 } } } }
LocationInputView
extension LocationInputView: UITextFieldDelegate { func textFieldShouldReturn(_ textField: UITextField) -> Bool { guard let query = textField.text else { return false } delegate?.executeSearch(query: query) return true } }
わからないこと
private extensionが必要になる、または使い所が知りたいです!
調べてみたのですが、理解するには至らずに質問させていただきました。回答お願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/25 04:34