【发布时间】:2016-05-24 02:43:16
【问题描述】:
尝试使用 Xcode 7.3 从 NSDictionary 中读取 Swift (2) 中的数据时,我遇到了臭名昭著的 EXC_BAD_INSTRUCTION (code=EXCI386_INVOP,subcode=0X0) 错误:
let aDict = data as! NSDictionary
car.tempo = aDict["tempo"] as! Int32
虽然没有编译器警告。我知道过去 Xcode、Swift 和 Int32s 存在问题。有什么建议可以更好地处理这个问题吗?蒂亚!
由于可能不清楚 - 上面显示的数据保证包含来自 plist 文件的数据,并且 aDict["tempo"] 是一个 NSNumber。
【问题讨论】:
-
"只有当你确定向下转换总是成功时,才使用强制形式的类型转换运算符(as!)。如果你尝试向下转换为,这种形式的运算符将触发运行时错误类类型不正确。”
-
或者换一种说法,任何时候你使用
!,你几乎都是在要求崩溃,所以你需要真正确定你是什么'正在做。
标签: swift core-data crash int32