ios - 无法将类型 (CMAccelerometerData!,NSError!)->() 的值转换为 CMAccelerometerHandler(aka(Optional<CMAccelerometerData>,Optional<NSError>)-<())

标签 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))
        }
    }        

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

最佳答案

我认为您被 XCode 欺骗了,这也困扰着我(“Fix-it”实际上并没有修复它)。

在您的情况下,您缺少 to:withHandler:

以下是 iOS 10Swift3.0.2XCode 8.2.1 的工作代码

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))
    } 
})

关于ios - 无法将类型 (CMAccelerometerData!,NSError!)->() 的值转换为 CMAccelerometerHandler(aka(Optional<CMAccelerometerData>,Optional<NSError>)-<()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41761696/

相关文章:

arrays - Swift - 通过重复生成组合

ios - UITextField 中的文本不会正确居中

ios - 如何使用 Firebase 更改我的值

json - Swift 将 json 数据获取到结构中并填充 pickerViews

ios - 在 swift 中发布执行闭包 block

swift - Swift 中的正确和错误答案

swift - 将 [Dictionary<String,Any?>] 转换为 [Dictionary<String,Any!>] ? swift 3

ios - 防止 UICollectionView 在 vi​​ew.layoutIfNeeded 期间设置动画

iOS - 删除圆形矩形按钮周围的边框

ios - 结合 GPS 和加速度计数据来提高定位精度?