2016-08-02 88 views
0

我下面就做一個簡單的計步器應用一個tutorial,而我收到以下錯誤無法轉換值類型的錯誤,斯威夫特

無法將類型的價值「(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 
相關問題