我正在制作一款应用程序,通过iPhone的任何移动来跟踪您的睡眠。我到处搜索,有很多方法可以从中获取数据,但没有工作。这是我的代码。
func startManager() {
let manager = CMMotionManager()
manager.startAccelerometerUpdates()
let accelerometer = manager.accelerometerData
}
但是manager.accelerometerData是零。我也尝试使用DeviceMotion,Gyro和UserAcceleration,但没有使用它们。我也试过这个。
print(manager.isAccelerometerActive)
它打印 false 所以我认为这是问题,但我仍然无法激活它。
我尝试将 let manager = CMMotionManager()放到顶部,但仍然无效。
我尝试将 manager.startAccelerometerUpdates()放在ViewDidLoad中,但仍无效。
我还尝试了另一种方式。
manager.startAccelerometerUpdates(to: OperationQueue.main) { (data : CMAccelerometerData, error : Error) in
print(data)
}
但它给了我一个错误,说我必须添加! CMAccelerometerHandler 但在我添加之后它告诉我再次添加它。
我想从Accelerometer获取原始值x,y和z
(我导入了CoreMotion)
我在XCode 8.2.1上使用Swift 3并在iPhone 6s上测试它。
答案 0 :(得分:0)
在Swift3
中,您应该在处理程序中使用可选参数
motionManager.startAccelerometerUpdates(
to: OperationQueue.main ,
withHandler:{ (data : CMAccelerometerData?, error : Error?) in
print(data)
})