调用setRegion

时间:2017-02-11 20:33:24

标签: ios swift xcode mapkit

我对Swift和编码很新。我想在我目前正在处理的应用程序中实现一个映射。我面临的问题是,只要我想将地图置于特定区域的中心,应用就会崩溃。我已经使用单独的View Controller中的按钮实现了这个功能,该按钮在点击时显示Map View Controller并将CLLocationCoordinate2D值传递给它:

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "showOnMap" {
        if let detailImpact = detailImpact {
        if let latitude = Double(detailImpact.reclat) {
            if let longitude = Double (detailImpact.reclong){
            let coordinates = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
            let controller = (segue.destination as UIViewController) as! MapViewController
            controller.coordinates = coordinates
            }  
        }
    }
}
}

传递值时,Map视图控制器执行居中功能:

    let span = MKCoordinateSpan(latitudeDelta: 100, longitudeDelta: 100)

    var coordinates: CLLocationCoordinate2D? {
    didSet{
        centerMapOnLocation()
    }
}

func centerMapOnLocation() {
    if let coordinates = coordinates {
        let coordinateRegion = MKCoordinateRegion(center: coordinates, span: span)
        print(coordinateRegion)
            ImpactMap.setRegion(coordinateRegion, animated: true)
    }
}

我在应用程序崩溃的行之前包含了一个打印功能,输出看起来像预期的那样:

  

MKCoordinateRegion(中心:__C.CLLocationCoordinate2D(纬度:50.774999999999999,经度:6.0833300000000001),span:__C.MKCoordinateSpan(latitudeDelta:100.0,longitudeDelta:100.0))

错误消息如下:

  

致命错误:在解包可选值时意外发现nil

我不知道为什么会发生错误,我从不强行打开一个值。我错过了什么?

0 个答案:

没有答案