-2
我的另一个问题被标记为与另一个问题相同,但它没有回答我遇到的问题。从anyobject字典中提取数值到数组
下面是代码:
if status == "OK" {
self.selectedRoute = (dictionary["routes"] as! Array<Dictionary<NSObject, AnyObject>>)[0]
self.overviewPolyline = self.selectedRoute["overview_polyline"] as! Dictionary<NSObject, AnyObject>
let legs = self.selectedRoute["legs"] as! Array<Dictionary<NSObject, AnyObject>>
let steps = legs[0]["steps"]!
for i in 0...steps.count - 1 {
let step_coordinate = steps[i]["start_location"]!
print(step_coordinate!["lat"]!!)
}
}
print语句给出了这样的结果
40.7609205
40.7640121
40.7595325
40.7501637
40.7481923
40.7393448
40.7252038
40.7225337
40.718295
,但如果我换print语句出来抢值,并把它们放在一个数组我得到的致命错误:发现无。
有人可以解释为什么会出现这种情况吗?如果不通过for循环,我如何获取这些值?
请你帮个忙,尽量不要使用'作为!'和其他力展开操作。相反,您应该正确地测试并展开“可选”值。强制解包可能导致令人讨厌的,难以发现的运行时异常。此外,尝试使用[最小化,完整和可验证的示例](http://stackoverflow.com/help/mcve) – ColGraff
'为我在0 ... steps.count - 1'可以只是: '为我在0 ..
Alexander
@ColGraff你是对的谢谢。我会尽量避免在将来做这件事。我不确定如何调整示例,因为我只是在寻找一种方法来存储上面显示的来自step_coordinate [“lat”]的值。我试图把它当作一个数组来对待,并且它失败了,所以我不知道如何去抓它们。 – tryingtolearn