2016-08-02 2 views
0

Я после tutorial о внесении простой шагомер приложение, и я получаю следующее сообщение об ошибкеНевозможно преобразовать значение ошибки типа Swift

Невозможно преобразовать значение типа «(CMPedometerData !, _) - > Пустота»к ожидаемого типа аргумента 'CMPedometerHandler' (ака '(опционально, необязательно) ->()')

этих строк кода:

if(CMPedometer.isStepCountingAvailable()){ 
        let fromDate = NSDate(timeIntervalSinceNow: -86400 * 7) 
        self.pedoMeter.queryPedometerDataFromDate(fromDate, toDate: NSDate()) { (data : CMPedometerData!, error) -> Void in 
         print(data) 
         dispatch_async(dispatch_get_main_queue(), {() -> Void in 
          if(error == nil){ 
           self.steps.text = "\(data.numberOfSteps)" 
          } 
         }) 
        } 
        self.pedoMeter.startPedometerUpdatesFromDate(midnightOfToday) { (data: CMPedometerData!, error) -> Void in 
         dispatch_async(dispatch_get_main_queue(), {() -> Void in 
          if(error == nil){ 
           self.steps.text = "\(data.numberOfSteps)" 
          } 
         }) 
        } 
       } 

ответ

5

Компилятор говорит вам, что обработчик, который вы предоставляете, имеет неправильный тип: у вас есть первый параметр как неявно-развернутый необязательный, а не необязательный (он имеет !, а не ?), а второй параметр имеет нет типа вообще. Другими словами, биты, которые выглядят следующим образом:

(data : CMPedometerData!, error) -> Void 

... должен выглядеть следующим образом, вместо:

(data : CMPedometerData?, error: NSError?) -> Void 
Смежные вопросы