Ошибка при установке нового региона для карты Swift - PullRequest
0 голосов
/ 18 мая 2018

в моем проекте я хочу нажать на кнопку, которая является адресом, и после этого она должна перейти к моей mapVC и центрировать карту по нажатому адресу.Одна из функций, вызываемых при нажатии кнопки, следующая:

 func adressfunc(){
    let mapvc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LocationVC") as! LocationVC

            CLGeocoder().geocodeAddressString(self.adresse, completionHandler: { (placemarks, error) -> Void in

                if let placemark = placemarks?[0] {
                    let location = placemark.location!
                    print("location", location)
                    mapvc.centerMapOnPin(selectedPin: location)
                 }})

}

внутри mapVC У меня есть функция centerMapOnPin:

 func centerMapOnPin (selectedPin: CLLocation){
    let newregion = MKCoordinateRegionMakeWithDistance(selectedPin.coordinate, regionRadius, regionRadius)
    print(selectedPin, "pinsel")
    print( newregion)
    map.setRegion(newregion, animated: true)
}

Печать местоположения в обеих функциях доказала, чтоданные о местоположении были переданы правильно, но каким-то образом я получаю сообщение об ошибке в map.setRegion (newregion, animated: true), в котором говорится, что он неожиданно обнаружил ноль при развертывании необязательного.

Я не могу понять, какой из них будет нулевым.

1 Ответ

0 голосов
/ 18 мая 2018

Попробуйте print(map) в функции centerMapOnPin.Может быть напечатано nil.

let mapvc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LocationVC") as! LocationVC

В настоящее время map еще не загружено.

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