致命错误:解开可选值 CMMotionManager 时意外发现 nil



试图在 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的,并且它是隐式包装可选的,因此当数据不可用时它会崩溃。

相关内容

  • 没有找到相关文章

最新更新