这是否意味着它应该被展开?
Cannot convert value of type '(data: CMAccelerometerData!, err: NSError!) -> Void' to expected argument type 'CMAccelerometerHandler' (aka '(Optional, Optional) -> ()')
为什么 CMAccelerometerData 与 accelerometerUpdateHandler 不兼容?
// error
motionManager.startAccelerometerUpdatesToQueue(motionHandlingQueue, withHandler: accelerometerUpdateHandler())
// snip
func accelerometerUpdateHandler() -> (data: CMAccelerometerData!, err: NSError!) -> Void {
let idleThreshold = 0.1
var log = [Double]()
var samplingCountdown: Int = 0
return { (data: CMAccelerometerData!, err: NSError!) -> Void in
let _stable = abs(data.acceleration.x) < idleThreshold && abs(data.acceleration.y) < idleThreshold && data.acceleration.z < -0.75
最佳答案
按如下方式定义您的加速度计处理程序:
func accelerometerHandler(data: CMAccelerometerData?, error: NSError?) -> Void {
guard let data = data where error == nil else { return }
let idleThreshold = 0.1
var log = [Double]()
var samplingCountdown: Int = 0
let _stable = abs(data.acceleration.x) < idleThreshold && abs(data.acceleration.y) < idleThreshold && data.acceleration.z < -0.75
// the rest of your code
}
调用时:
motionManager.startAccelerometerUpdatesToQueue(motionHandlingQueue, withHandler: accelerometerHandler)
关于swift - 无法转换类型的值“(数据 : CMAccelerometerData!,错误 : NSError!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38003885/