2016-07-14 3 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

null可能性のある注釈を持たないフレームワークでは、force-unwrapped-optionalとして宣言された変数があります。これはそれらの1つかもしれません。 – EmilioPelaez

2

コンパイラはクロージャ内の型を推測してみましょう:

CMMotionManager().startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()!) { (accelerometerData, error) in 
    // 
} 
関連する問題