我最近将Xcode更新为版本7,其中还包括Swift 2。 我的很多代码都有错误,我设法修复了大部分代码,除了一个。
let manager = CMMotionManager()
if manager.accelerometerAvailable
{
manager.accelerometerUpdateInterval = 0.5
manager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue())
{ // **Error on this line**
[weak self] (data: CMAccelerometerData!, error: NSError!) in
buffer = data.acceleration.y
}
}
产生的错误是:
无法转换类型'的值(CMAccelerometerData!,NSError!) - > ()' 至 预期参数类型'CMAccelerometerHandler'(又名 '(可选,可选) - > ()')
如何修复此错误,以便我的代码与swift 2一起使用?
答案 0 :(得分:2)
您不需要声明块的类型
manager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue()) {
[weak self] data, error in
buffer = data.acceleration.y
}
答案 1 :(得分:1)
请尝试以下代码。
let manager = CMMotionManager()
if manager.accelerometerAvailable
{
manager.accelerometerUpdateInterval = 0.5
manager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue())
{
data, error in
buffer = data.acceleration.y
}
}