2017-01-06 9 views
1

における型エラーの値を変換できません私は、スウィフトにかなり新しいですので、私は、このページから歩数計アプリを作成する方法についてのチュートリアルを次のようだ:http://shrikar.com/ios-swift-development-step-counter-app-using-pedometer-data/はスウィフト

しかし、しばらく前からだったこと私はそれを更新し、それほど遠くに進まないように取り組んできました。私はこのエラーを取得しておいてください。

Cannot convert value of type '(CMPedometerData?, NSError?) -> Void' to expected argument type 'CMPedometerHandler' (aka '(Optional<CMPedometerData>, Optional<Error>) ->()') 

ここに私のコードは、これまでのところです:

if(CMPedometer.isStepCountingAvailable()){ 
     let fromDate = NSDate(timeIntervalSinceNow: -86400 * 7) 
     self.pedoMeter.queryPedometerDataFromDate(fromDate as Date, toDate: NSDate() as Date) { (data : CMPedometerData?, error: NSError?) -> Void in 
      DispatchQueue.main.async(){ 
       if(error == nil){ 
        self.steps.text = "\(data.numberOfSteps)" 
       } 
      } 
     } 

     self.pedoMeter.startPedometerUpdatesFromDate(newDay) { (data: CMPedometerData?, error: NSError?) -> Void in 
      DispatchQueue.main.async(){ 
       if(error == nil){ 
        self.steps.text = "\(data.numberOfSteps)" 
       } 
      } 
     } 
    } 

エラーは以下の行で発生します。

{ (data : CMPedometerData?, error: NSError?) -> Void in 
      DispatchQueue.main.async(){ 

感謝すべてのヘルプを。

+0

このチュートリアルは古いもので、おそらくあなたのプロジェクトでSwift 3を使用しています.NSErrorがErrorに変更されました。チュートリアルがこれに加えて公開されて以来、おそらくSwiftの変更に起因する他の問題に遭遇するでしょう。 – Gruntcakes

+0

うん、それは、応答のおかげでそれです。 –

答えて

2

NSError?を使用していたのに対し、Error?が必要です。 Try

(data : CMPedometerData?, error: Error?) -> Void 
+1

うわー、それと単純です。どうもありがとうございます。 –