В моем приложении я использую карты Apple с помощью Autocomplete API Google Адресов, чтобы иметь полную рабочую систему, и я использовал API Google Maps Web API, чтобы иметь возможность получить информацию о некоторых местах из Google, отправив широту и долготу, которые были преобразованы из местоположения на карте в реальную координату.Завершение приложения из-за неперехваченного исключения «NSRangeException» с API Карт Google
Я использовал следующую функцию, чтобы получить информацию:
func getAddressForLatLng(latitude: String, longitude: String) -> Array <String> {
var location_info = [String]() // Array to Contain the returned info from Google
let url = NSURL(string: "\(base_url)latlng=\(latitude),\(longitude)&key=\(api_key)") // url + latitude + longitude + api key
let data = NSData(contentsOfURL: url!) // get the content of the url
let json = try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! NSDictionary // get the JSON from the url
if let result = json["results"] as? NSArray {
if let address = result[0]["address_components"] as? NSArray {
for value in 0...5 {
if let place = address[value]["short_name"]{
location_info.append(place as! String)
}
}
}
}
return location_info
}
, но когда я протестировать приложение на моем iPhone я получаю следующее за пределами ошибки диапазона:
***, истекающее приложение из-за неперехваченного исключения «NSRangeException», причина: '- [__ NSCFArray objectAtIndex:]: index (4) за пределами (4)'
и я проверил каждое возможное решение для массива, но я никуда не денусь.
Спасибо человека, что это прекрасно работает. Не могли бы вы объяснить, в чем проблема с моей предыдущей версией. – SALEH