I recently updated Xcode to version 7 which also includes Swift 2. A lot of my code had errors and I managed to fix most of them except for one.
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
}
}
The resulting error is:
Cannot convert value of type '(CMAccelerometerData!, NSError!) -> ()' to expected argument type 'CMAccelerometerHandler' (aka '(Optional, Optional) -> ()')
How do I go about fixing this error so my code works with swift 2?
Try the following code.
let manager = CMMotionManager()
if manager.accelerometerAvailable
{
manager.accelerometerUpdateInterval = 0.5
manager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue())
{
data, error in
buffer = data.acceleration.y
}
}