2016-07-14 4 views
0

Он продолжает говорить Невозможно преобразовать значение типа (CMAccelerometerData!, NSError!). Как я могу его изменить?Невозможно преобразовать значение типа (CMAccelerometerData !, NSError!) В

motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()!, withHandler: { 
      (accelerometerData: CMAccelerometerData!, error: NSError!) in 
      // 3 
      let acceleration = accelerometerData.acceleration 
      // 4 
      self.xAcceleration = (CGFloat(acceleration.x) * 0.75) + (self.xAcceleration * 0.25) 
      }) 
+1

Использование кода завершения. Повторите метод. Или введите ⇧⌘0 (ноль) в поле поиска и вставьте 'startAccelerometerUpdatesToQueue', затем нажмите' CMAccelerometerHandler' и сравните подписи. Разработчик должен привыкнуть к поиску правильных сигнатур методов в документации. – vadian

ответ

0

Если это не будет:

(CMAccelerometerData?, NSError?) -> Void 
        ^  ^
         not ! 

Reference

+0

Я думаю, что фреймворки, которые не имеют аннотаций с нулеутомией, имеют свои переменные, объявленные как необязательно. Это может быть один из них. – EmilioPelaez

2

Пусть компилятор выводить типы в замыкании:

CMMotionManager().startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()!) { (accelerometerData, error) in 
    // 
} 
Смежные вопросы