如何检查是否已完成Swift 3?
问题描述:
我有一个从表视图中传递位置数据的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!
不限帮助表示赞赏!
答
我想这个问题是在该行destination.room = sender as! Room
因为sender
将UITableViewCell
类型的类,并且当您尝试强制转换崩溃sender
到Room
对象类型。
+0
嗯,你说得对。我需要找到一个解决方案。谢谢。 – ollyboon
显示您的代码。什么是'房间'?它是如何设置的? – matt