2017-04-01 48 views
-1

我有一个从表视图中传递位置数据的segue。我需要在这个segue完成之后添加一个map注释,但是这个map是我的初始VC,所以它在加载时由于缺少数据而崩溃,因为没有发生segue。如何检查是否已完成Swift 3?

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

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

    mapView.addAnnotation(roomPin) 

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

编辑:

室是装载有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 
} 

的自定义类}

然后被称为在tableview中显示的名称和数量。当按下时它执行赛格瑞传递室对象到我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! 

不限帮助表示赞赏!

+0

显示您的代码。什么是'房间'?它是如何设置的? – matt

回答

0

我想这个问题是在该行destination.room = sender as! Room因为senderUITableViewCell类型的类,并且当您尝试强制转换崩溃senderRoom对象类型。

+0

嗯,你说得对。我需要找到一个解决方案。谢谢。 – ollyboon

相关问题