如何检查segue是否完成Swift 3?

How to check if segue completed Swift 3?

我有一个从 table 视图传递位置数据的 segue。我需要在这个 segue 完成后添加一个地图注释,但地图是我的初始 VC,因此由于没有发生 segue,它由于缺少数据而在加载时崩溃。

我想我需要将以下代码(在 viewDidLoad 中)包装在一个 if 语句中,以检查是否发生了 segue,或者检查是否有任何数据可供使用。

    let roomPin = MGLPointAnnotation()
    roomPin.coordinate = CLLocationCoordinate2D(latitude: room.latitude, longitude: room.longitude)

    mapView.addAnnotation(roomPin)

不完全确定我应该如何检查是否有任何数据要使用。

编辑:

房间是自定义的 class 装有 alamofire

class Room {

var roomNumber : String!
var roomName : String!
var latitude : Double!
var longitude : Double!

init(json : JSON) {
    roomNumber = json["room_number"].stringValue
    roomName = json["room_name"].stringValue
    latitude = json["latitude"].double
    longitude = json ["longitude"].double
}

}

然后在 table 视图中调用以显示名称和号码。按下时,它会执行一个 segue,将 Room 对象传递到我的 mapVC

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {


    if segue.identifier == "mapSegue" {
        if let destination = segue.destination as? ViewController {
            destination.room = sender as! Room


        }
    }
}

在我的地图视图控制器中,我在 viewDidLoad 中有上面的注释代码,房间被声明为:

var room : Room!

感谢任何帮助!

我猜问题出在 destination.room = sender as! Room 行,因为 sender 的类型是 UITableViewCell class 并且当您尝试将 sender 类型转换为Room 崩溃的对象类型。