试图在 swift 中实现这个raywenderlich教程,但不幸的是我
fatal error: unexpectedly found nil while unwrapping an Optional value
在线的
let acceleration :CMAcceleration = self.motionManager!.accelerometerData.acceleration
任何机构都可以请帮助它为什么会发生
请从这里下载场景文件
试图在 swift 中实现这个raywenderlich教程,但不幸的是我
fatal error: unexpectedly found nil while unwrapping an Optional value
在线的
let acceleration :CMAcceleration = self.motionManager!.accelerometerData.acceleration
任何机构都可以请帮助它为什么会发生
请从这里下载场景文件
self.motionManager
为 nil 并且您尝试解开一个值。始终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
并且它是隐式包装的可选,所以当数据不可用时它会崩溃。