В Interfacecontroller.swift
У меня есть класс переменной var motionManager = CMMotionManager()
и var accTest = [Double]()
, которые я имею в виду в этой части кода:watchOS2 CMDeviceMotion не работает
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
. Есть идеи?
Хорошо, спасибо. Тогда по крайней мере я могу перестать пытаться сейчас ... :-) – Pieter