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

时间:2017-01-20 10:43:00

标签: ios swift swift3

physicsWorld.gravity = CGVector(dx: 0, dy: -2)
    physicsWorld.contactDelegate = self

    motionManager.accelerometerUpdateInterval = 0.2

    motionManager.startAccelerometerUpdatesToQueue(OperationQueue.currentQueue!) { (data:CMAccelerometerData?, error:NSError?) -> Void in
        if let accelerometerData = data {
            let acceleration = accelerometerData.acceleration
            self.xAcceleration = (CGFloat(acceleration.x) * 0.75 + (self.xAcceleration * 0.25))
        }
    }        

我不知道如何修复它,当我点击'修复它'它不起作用

1 个答案:

答案 0 :(得分:1)

我认为你被XCode欺骗了,这也困扰了我(“修复它”实际上没有解决它)。

在您的情况下,您错过了to:withHandler:

以下是在Swift3.0.2

下使用XCode 8.2.1iOS 10的代码
motionManager.startAccelerometerUpdates(
  to: OperationQueue.main ,
  withHandler:{ (data : CMAccelerometerData?, error : Error?) in
    if let accelerometerData = data {
        let acceleration = accelerometerData.acceleration
        self.xAcceleration = (CGFloat(acceleration.x) * 0.75 + (self.xAcceleration * 0.25))
    } 
})