After reading about Swift Closures and trying to use the same syntax to pass a anonymous function into the handler I cannot get it to compile. How can I correctly re-create the following functioning objective c code in Swift?
Here is the objective c code that I am trying to re-create in swift
[self.motionManager
startAccelerometerUpdatesToQueue:[[NSOperationQueue alloc] init]
withHandler:^(CMAccelerometerData *data, NSError *error)
{
dispatch_async(dispatch_get_main_queue(),
^{
float xx = data.acceleration.x;
float yy = -data.acceleration.y;
float angle = atan2(yy, xx);
self.dropitBehavior.gravity.angle = angle;
});
}
];
Here are few failed attempts at re-creating the code in swift:
self.motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue(), withHandler: {
(data: CMAccelerometerData(), error: NSError()) -> Void = {
dispatch_async(dispatch_get_main_queue()) {
var xx = data.acceleration.x
var yy = -data.acceleration.y
var angle = atan2(yy, xx)
self.dropitBehavior.gravity.angle = angle
}
}
})
self.motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue(), withHandler: {
(data: CMAccelerometerData(), error: NSError()) {
dispatch_async(dispatch_get_main_queue()) {
var xx = data.acceleration.x
var yy = -data.acceleration.y
var angle = atan2(yy, xx)
self.dropitBehavior.gravity.angle = angle
}
}
})