Core Motion:可选类型 'NSOperationQueue?' 的值未展开
Core Motion: Value of optional type 'NSOperationQueue?' not unwrapped
我正在按照 RayWenderLich 网站上的教程进行操作,但是,我停留在有关 Core Motion 的部分。
// CoreMotion
// 1
motionManager.accelerometerUpdateInterval = 0.2
// 2
motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue(), withHandler: {
(accelerometerData: CMAccelerometerData!, error: NSError!) in
// 3
let acceleration = accelerometerData.acceleration
// 4
self.xAcceleration = (CGFloat(acceleration.x) * 0.75) + (self.xAcceleration * 0.25)
})
我尝试修复错误,但最终出现更多错误。
感谢任何帮助。谢谢。
NSOperationQueue
的 currentQueue
returns 是可选的,因此您需要解开可选的包装,NSOperationQueue.currentQueue()!
。
// CoreMotion
// 1
motionManager.accelerometerUpdateInterval = 0.2
// 2
motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()!, withHandler: {
(accelerometerData: CMAccelerometerData?, error: NSError?) in
// 3
let acceleration = accelerometerData.acceleration
// 4
self.xAcceleration = (CGFloat(acceleration.x) * 0.75) + (self.xAcceleration * 0.25)
})
此外,您用作处理程序的闭包的参数类型有误。这是typealias CMAccelerometerHandler = (CMAccelerometerData?, NSError?) -> Void
我正在按照 RayWenderLich 网站上的教程进行操作,但是,我停留在有关 Core Motion 的部分。
// CoreMotion
// 1
motionManager.accelerometerUpdateInterval = 0.2
// 2
motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue(), withHandler: {
(accelerometerData: CMAccelerometerData!, error: NSError!) in
// 3
let acceleration = accelerometerData.acceleration
// 4
self.xAcceleration = (CGFloat(acceleration.x) * 0.75) + (self.xAcceleration * 0.25)
})
我尝试修复错误,但最终出现更多错误。
感谢任何帮助。谢谢。
NSOperationQueue
的 currentQueue
returns 是可选的,因此您需要解开可选的包装,NSOperationQueue.currentQueue()!
。
// CoreMotion
// 1
motionManager.accelerometerUpdateInterval = 0.2
// 2
motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()!, withHandler: {
(accelerometerData: CMAccelerometerData?, error: NSError?) in
// 3
let acceleration = accelerometerData.acceleration
// 4
self.xAcceleration = (CGFloat(acceleration.x) * 0.75) + (self.xAcceleration * 0.25)
})
此外,您用作处理程序的闭包的参数类型有误。这是typealias CMAccelerometerHandler = (CMAccelerometerData?, NSError?) -> Void