startAccelerometerUpdatesToQueue Тип выражения неоднозначен без дополнительного контекста

Я пытаюсь перевести следующий код на Swift 2.

manager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue()) { [weak self] (data: CMAccelerometerData!, error: NSError!) in              
    self!.outputAccData(data.acceleration)
}

Но это дает мне следующую ошибку.

Тип выражения неоднозначен без дополнительного контекста

Кто-нибудь знает, почему это происходит?


person kmakma    schedule 15.06.2015    source источник


Ответы (1)


Это одна из тех проблем, которые можно решить, переписав код с нуля. Похоже, что второй параметр startAccelerometerUpdatesToQueue() теперь является объектом типа (CMAccelerometerData?, NSError?) -> Void вместо (CMAccelerometerData!, NSError!) -> Void. Вам просто нужно переписать свой звонок, чтобы отразить это.

manager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue()) { [weak self] (data: CMAccelerometerData?, error: NSError?) in
    self!.outputAccData(data.acceleration)
}
person Mick MacCallum    schedule 15.06.2015