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
あり、暗黙的にラップされたオプションであるため、データが利用できない場合にクラッシュします。