Широта и долгота от MKMapItem в Swift?

С помощью MKLocalSearchRequest() Я получаю массив MKMapItem,

Все, что мне нужно, это широта и долгота от пункта. Кажется, это должно быть легко.

let search = MKLocalSearch(request: request)
search.startWithCompletionHandler { (response, error) in
    for item in response.mapItems {

    }
}

я пытался println(item.latitude), Консольный вывод nil,

С помощью item.placemark чтобы получить широту / долготу, кажется, не вариант, потому что 'placemark' is unavailable: APIs deprecated as of iOS 7 and earlier are unavailable in Swift

Почему item.latitude ноль? Почему я не могу добраться до placemark?

Консольный вывод для println(item) это что-то вроде этого:

<MKMapItem: 0x17086a900> {
isCurrentLocation = 0;
name = "Random University";
phoneNumber = "+1000000000";
placemark = "Random University, 400 Address Ave, City, NJ  01010-0000, United States @ <+34.74264816,-84.24657106> +/- 0.00m, region CLCircularRegion (identifier:'<+34.74279563,-84.24621513> radius 514.96', center:<+34.74279563,-84.24621513>, radius:514.96m)";
url = "http://www.shu.edu";
}

Я могу видеть широту и долготу прямо там! Почему я не могу получить это?

2 ответа

Решение

response.mapItems массив объявлен в API как тип [AnyObject]!,

Цикл for явно не говорит, что res имеет тип MKMapItem (или это response.mapItems на самом деле [MKMapItem]).

Таким образом, res рассматривается как экземпляр AnyObject, который не определен как имеющий свойство метки.

Вот почему вы получаете ошибку компилятора placemark ' недоступен....

Чтобы это исправить, бросьте res как MKMapItem и тогда свойство метки станет видимым.

Используйте этот код для получения placemark

for res in response.mapItems {
    if let mi = res as? MKMapItem {
        self.userSearch.append(mi.placemark)
    }
}

Кроме того, эта строка после for цикл:

self.userSearch = response.mapItems.placemark

Для получения дополнительной информации обратитесь к этому ответу.

Попробуйте эту ссылку, я надеюсь, что работа для вас:

http://www.ioscreator.com/tutorials/searching-map-view-ios8-swift

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