gpt4 book ai didi

ios - watchOS2 CMDeviceMotion 不起作用

转载 作者:行者123 更新时间:2023-11-30 13:48:00 25 4
gpt4 key购买 nike

Interfacecontroller.swift 中,我有一个类变量 varmotionManager = CMMotionManager()var accTest = [Double]() 我引用这段代码:

let useOnlyAccelerometer = true

if useOnlyAccelerometer {

motionManager.accelerometerUpdateInterval = 0.1
if motionManager.accelerometerAvailable {
let handler:CMAccelerometerHandler = {(data: CMAccelerometerData?, error: NSError?) -> Void in
self.statusLabel.setText(String(format: "%.2f", data!.acceleration.x))
self.accTest.append(data!.acceleration.x)
}
motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()!, withHandler: handler)
}
} else {

motionManager.deviceMotionUpdateInterval = 0.1
if motionManager.deviceMotionAvailable {
let handler:CMDeviceMotionHandler = {(motion: CMDeviceMotion?, error: NSError?) -> Void in
self.statusLabel.setText(String(format: "%.2f", motion!.userAcceleration.x))
self.accTest.append(motion!.userAcceleration.x)
}
motionManager.startDeviceMotionUpdatesToQueue(NSOperationQueue.currentQueue()!, withHandler: handler)

}
}

直接使用加速度计即可。现在,如果我将 useOnlyAccelerometer 更改为 false 那么它就不起作用。我不明白其中的区别或出了什么问题。在 iPhone 上它确实可以工作,并且根据文档 watchOS2 应该支持 CMDeviceMotion 。有什么想法吗?

最佳答案

我的猜测是,第一代 Apple Watch 不支持磁力计。 Ifixit 透露, watch 上有磁铁可以将其连接到充电器。在 WWDC 2016 的实验室中,我询问一位 Apple 工程师是否会支持磁力计,并得到了相当明确的答复:“这需要一个强大的磁力计,不是吗?”我不知道这是否意味着将来会得到支持。

因此,如果不支持磁力计,则 CMDeviceMotion 的返回值为

公共(public) var 磁场:CMCalibrateMagneticField { 获取 }

将是未定义的。建议提交错误报告。

关于ios - watchOS2 CMDeviceMotion 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34682130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com