Я создаю панель поиска в моем приложении, которая позволяет пользователю искать любой город в мире. Я использую CLGeocoder () и использую geocodeAddressString, который принимает то, что пользователь вводит в качестве параметра. Проблема в том, что результаты поиска всегда показывают только 1 элемент. Есть ли способ увеличить количество результатов?
func getSearch(fragment: String) -> [String]() {
let geocoder = CLGeocoder()
var results = [Search]()
geocoder.geocodeAddressString(fragment) { (placemarks, err) in
guard let placemarks = placemarks else { return }
for mark in placemarks {
var name = ""
if let city = mark.locality {
name += city
}
if let country = mark.country {
if(country == "United States") {
if let state = mark.administrativeArea {
if(name.count > 2) {
name += ", " + state + ", US"
} else {
name += state + ", US"
}
}
} else {
if(name.count > 0) {
name += ", " + country
} else {
name += country
}
}
}
if let location = mark.location {
results.append(Search(name: name, location: CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)))
}
}
return results
}
}