Swift 2到Swift 3.0 motionManager [英] Swift 2 to Swift 3.0 motionManager

查看:105
本文介绍了Swift 2到Swift 3.0 motionManager的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将应用程序从swift 2转换为swift 3并且我正在尝试使用CMMotionManager,但是当我尝试调用.startAccelerometerUpdates()函数时它给了我这个错误...但不知道有什么问题。

I am converting an app from swift 2 to swift 3 and I'm trying to use the CMMotionManager, but it gives me this error when I try to call the .startAccelerometerUpdates() function... No clue what's wrong though.

这是我初始化经理的方式:

This is how I initialize the manager:

让motionManager = CMMotionManager()

试图调用该函数:

    motionManager.startAccelerometerUpdates(to: OperationQueue.main) { [weak self] (data: CMAccelerometerData?, error: NSError?) in
        self!.outputAccelerationData(data!.acceleration)
    }




错误:无法转换类型'的值(CMAccelerometerData?,NSError?)
- >()'到预期的参数类型'CMAccelerometerHandler'(又名'(可选,可选) - >()')

Error: Cannot convert value of type '(CMAccelerometerData?, NSError?) -> ()' to expected argument type 'CMAccelerometerHandler' (aka '(Optional, Optional) -> ()')

谢谢!

推荐答案

这个神秘的错误消息归结为此:在Swift 3中 NSError 将桥接到错误。编写这样的代码,问题应该消失:

The cryptic error message boils down to this: in Swift 3 NSError is bridged to Error instead. Write your code like this and the problem should go away:

motionManager.startAccelerometerUpdates(to: OperationQueue.main) { [weak self] (data: CMAccelerometerData?, error: Error?) in

这篇关于Swift 2到Swift 3.0 motionManager的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆