无法将类型的值(CMAccelerometerData!,NSError!) - &gt;()转换为CMAccelerometerHandler(又名(可选<cmaccelerometerdata>,可选<nserror>) - &lt;())

时间:2015-10-29 06:23:27

标签: xcode swift2

我最近将我的xcode从版本6.3.1升级到xcode 7.1 beta。我正在使用CMMotionManger,以下代码显示新版本中的错误。我试过解决它但找不到解决方案。在此先感谢。

代码:

let motionManager=CMMotionManager()
        motionManager.accelerometerUpdateInterval = 0.2
        if(motionManager.accelerometerAvailable)
        {
        motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()!, withHandler: { in
            (accelerometerData: CMAccelerometerData!, error: NSError!) in
            let acceleration = accelerometerData.acceleration
            self.accelerationX = CGFloat(acceleration.x)
       })
        }

错误遇到:

无法将类型'(CMAccelerometerData!,NSError!) - &gt;()'的值转换为预期的参数类型'CMAccelerometerHandler'(又名'(可选,可选) - &lt;()')

1 个答案:

答案 0 :(得分:1)

得到了答案。试过很多事情,以下工作。

声明accelerometerData,错误如下,并直接使用处理程序块内的变量。      让_:CMAccelerometerData!
    让_:NSError!

let _:CMAccelerometerData!
    let _:NSError!

    if(motionManager.accelerometerAvailable)
    {
        motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()!, withHandler: {
        accelerometerData,error in
        let acceleration = accelerometerData!.acceleration
        self.accelerationX = CGFloat(acceleration.x)
   })

它有效。:)