【发布时间】:2017-12-27 13:21:30
【问题描述】:
我正在尝试将数据从我的第一个 ViewController 发送到我的第二个。
使用简单的 Int 可以正常工作,但使用此 Double 则无法正常工作,我不明白为什么。因此,如果您能解释为什么它不起作用,那就太酷了!
我在第一个 ViewController 中的声明:
var time: Double? = 0.00
然后我尝试将它发送到我的另一个 ViewController:
let vc = segue.destination as! MySecondViewController
vc.rows = rows[pathForAVC]
vc.lap = lap[pathForAVC]
vc.indexPath = pathForAVC
vc.time = rows[pathForAVC]["Time"]! as! Double
致命错误:在展开可选值时意外发现 nil
还有我的第二个 ViewController:
var time: Double? = 0.00
topLabel.text = "\(time!)"
注:
rows 是一个字典:
var rows: [[String : AnyObject]] = [[:]]
我真的不明白我的错误......
【问题讨论】:
-
这与传递你的价值没有任何关系......对我来说,
rows[pathForAVC]["Time"]似乎不包含一个值,你正在强制解开它。尝试使用if let unwrappedTime = rows[pathForAVC]["Time"] as? Double {}安全地打开它 -
那里有太多的力量展开。你真的应该避免使用它。永远。
-
此外,如果您打算将
Doubles 存储在您的字典中,那么它的类型实际上应该是[[String : Any]]。Double符合Any而不是AnyObject。
标签: ios swift uiviewcontroller