Почему при попытке отобразить название города и штата в UILabel в Swift я получаю «exc bad access»? - PullRequest
1 голос
/ 15 октября 2019

Я не уверен, что делаю неправильно. У меня есть этот код ниже, где я пытаюсь отобразить название города и штата в UILabel. Xcode продолжает падать, когда доходит до линии if let city = selectedPin!.locality. Почему это происходит?

var selectedPin:MKPlacemark? = nil

@objc func saveNameToLabel(){

    let placemark = MKPlacemark()
    selectedPin = placemark

    if let city = selectedPin!.locality, //Here is where I get the Error Access
        let state = selectedPin!.administrativeArea {

        labelForCityAndState.text = "\(city) \(state)"
        print("display city and state in label")
    }
}

1 Ответ

0 голосов
/ 15 октября 2019

Вы получаете эту ошибку, потому что MKPlacemark, очевидно, ожидает от вас CLLocationCoordinate2D для одного из init методов, которые имеют параметр coordinate. Например:

let coordinate = CLLocationCoordinate2D(latitude: ..., longitude: ...)
let placemark = MKPlacemark(coordinate: coordinate)

Можно представить, что автор MKPlacemark никогда не предполагал, что кто-то создаст метку, которая на самом деле не представляет какую-то координату. Ясно, что было бы неплохо, если бы MKPlacemark обрабатывал эту ошибку более изящно, но, увы, это не так. Если хотите, вы можете сообщить отзыв Apple об этом поведении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...