作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这会产生“ fatal error :无法解开Optional.None”,我似乎不明白为什么
var motionManager = CMMotionManager()
motionManager.accelerometerUpdateInterval = 0.2
motionManager.startAccelerometerUpdates()
var accelerationData = motionManager.accelerometerData
var accel = accelerationData.acceleration.x
如果有人能帮助我,那就太好了。
最佳答案
问题是 AccelerationData 为零,而您没有检查这一点。来自 docs :
If no accelerometer data is available, the value of this property is nil.
在像这样调用方法之前,您应该检查以确保确实存在数据
if let accelerationData = motionManager.accelerometerData {
var accel = accelerationData.acceleration.x
}
这将确保如果没有数据,您的应用程序不会崩溃。现在确保您获得一些数据。
您没有获得任何数据,因为您在初始化核心运动管理器后立即请求数据。您可以在检查前等待几秒钟来显示这一点。您可以添加NSThread.sleepForTimeInterval(3)
就在if let 的上方,运行项目就会进入if let 。但请确保您使用的是实际设备,模拟器不会生成任何运动数据。
关于swift - "Can' t 展开可选。无 "and I can' t 找出原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24334219/
我是一名优秀的程序员,十分优秀!