2016-05-19 11 views
1

В настоящее время используется Apple Watch для расчета углов поворота, высоты тона и угла поворота.Сбой при работе с Apple Watch и Swift при расчете движения устройства с помощью CoreMotion

Однако при попытке использовать функции основного движения приложение сработает. Кто-нибудь испытал эту проблему?

if motionManager.deviceMotionAvailable{ 
    self.referenceAttitude = self.deviceMotionManger.attitude 
    let currentAttitude : CMAttitude = self.deviceMotionManger.attitude 
    currentAttitude.multiplyByInverseOfAttitude(self.referenceAttitude) 
    self.Yaw.setText("Yaw " + String(format: "%.1f", currentAttitude.yaw)) 
    self.Pitch.setText("Pitch " + String(format: "%.1f", currentAttitude.pitch)) 
    self.Roll.setText("Roll " + String(format: "%.1f", currentAttitude.roll)) 
} 

else { 
    self.Yaw.setText("device motion is not" + String(motionManager.deviceMotionActive)) 
} 
+1

Сбой с какой ошибкой? – zoul

+0

Комментарий ниже ответил на мой вопрос. Ни один из других датчиков не работает на часах яблока. @zoul –

ответ

2

Единственными данными о движении ядра, доступными от Apple Watch, являются необработанные данные акселерометра.

Часы не будут предоставлять данные о сыром гироскопа, данные сырого магнитометра или данные обработанного устройства; deviceMotionAvailable всегда будет возвращать false.

Что касается сбоя, вы получите «фатальную ошибку: неожиданно обнаружен нуль при развертывании необязательного значения», когда розетка для вашего неявно развернутого ярлыка Yaw не подключена к раскадровке.

+0

Как я могу использовать данные акселерометра, чтобы получить рыскание, шаг и рулон устройства? @PetahChristian –

+0

Вы можете попробовать несколько [других ответов] (http://stackoverflow.com/search?q=accelerometer+device+motion+%5Bios%5D+answers%3A1), но это действительно нецелесообразно или невозможно с использованием необработанных данных акселерометра в одиночестве. Вы можете [отправить запрос функции] (https://bugreport.apple.com/). –