试图在 swift 中实现这个 raywenderlich tutiorial ,但不幸的是我是
fatal error: unexpectedly found nil while unwrapping an Optional value
在线
let acceleration :CMAcceleration = self.motionManager!.accelerometerData.acceleration
任何机构都可以帮助为什么它发生
请从这里下来的场景文件
self.motionManager
为零,您尝试解开nil
值。始终通过使用可选绑定检查nil
或使用可选链接来解包可选值。
if let motionManager = self.motionManager {
if let accelerometerData = motionManager.accelerometerData {
let acceleration :CMAcceleration = accelerometerData.acceleration
}
}
else {
print("motion manager is nil")
}
您应该检查您的代码是否已经初始化motionManager
。
编辑
我已经检查了文档
返回加速度计数据的最新示例,如果没有,则返回 nil 可用。 */
var accelerometerData: CMAccelerometerData! { get }
所以你还需要检查 nil 的accelerometerData
.它可以是nil
的,并且它是隐式包装可选的,因此当数据不可用时它会崩溃。