gpt4 book ai didi

iphone - CMDeviceMotion 数据访问

转载 作者:行者123 更新时间:2023-11-28 06:32:20 26 4
gpt4 key购买 nike

我在访问 CMDeviceMotion 数据时遇到问题。我拥有所需的一切,但我的 startDeviceMotionUpdates 函数似乎被忽略了(我认为处理程序有问题)。这是我的代码:

let manager = CMMotionManager()
if manager.isDeviceMotionAvailable {
manager.startDeviceMotionUpdates()
manager.deviceMotionUpdateInterval = 0.1
manager.startDeviceMotionUpdates(to: OperationQueue.current!, withHandler: {
(data, error) -> Void in
self.digit.text = String (describing: data!.gravity.z)
self.digit2.text = String (describing: data!.gravity.y)
self.digit3.text = String (describing: data!.gravity.z)
})

digit、digit2 和 digit3 是编辑文本字段,我要将重力数据写入其中。一切都在 iPhone 6 上进行了测试 - deviceMotion 可用且处于事件状态。我设法在没有 startMotionUpdates 函数的情况下访问数据,但我只得到了 NIL 值。知道有什么问题吗?谢谢!

最佳答案

好的,我明白了。要在 Swift 3.0访问 Core Motion(在我的例子中使用 CMDeviceMotion 类,但也可以是 CMGyroData 或 < strong>CMAccelerometerData):

let manager = CMMotionManager()
if manager.isDeviceMotionAvailable {
manager.deviceMotionUpdateInterval = 0.05 //The lower the interval is, the faster motion data is read
manager.startDeviceMotionUpdates(to: OperationQueue.current!, withHandler: {
(motion: CMDeviceMotion?, Error) -> Void in

//Do whatever U want with data provided by CMDeviceMotion

}
})
}
else{
print("Core Motion access denied")
}

如果不再需要,不要忘记停止从 Core Motion 检索数据,例如

ovveride func viewWillDisappear(_ animated: Bool) {
manager.stopDeviceMotionUpdates()
}

基本上,我的主要问题是处理程序的实现。希望对您有所帮助!

关于iphone - CMDeviceMotion 数据访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39977123/

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