0

试图在 swift 中实现这个raywenderlich教程,但不幸的是我

  fatal error: unexpectedly found nil while unwrapping an Optional value

在线的

    let acceleration :CMAcceleration = self.motionManager!.accelerometerData.acceleration

任何机构都可以请帮助它为什么会发生

请从这里下载场景文件

4

1 回答 1

0

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

于 2014-12-27T18:08:39.293 回答