Sensor de proximidad en Swift (de Objective-C)
Soy un usuario relativamente nuevo para Swift y ahora, necesito aprovechar el sensor de proximidad de un iPhone. No importa la distancia, pero quiero saber cuándo hay algo cerca del iPhone.
Así que encontré este código en Objective-C que funcionó, pero lo necesito en Swift. He intentado algunas formas, pero ninguna funcionó. Así que aquí está el código que necesito:
- (void) activateProximitySensor {
UIDevice *device = [UIDevice currentDevice];
device.proximityMonitoringEnabled = YES;
if (device.proximityMonitoringEnabled == YES) {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(proximityChanged:) name:@"UIDeviceProximityStateDidChangeNotification" object:device];
}
}
- (void) proximityChanged:(NSNotification *)notification {
UIDevice *device = [notification object];
NSLog(@"Detectat");
//DO WHATEVER I WANT
}
EDITAR 1: Lo que probé fue esto:
override func viewDidLoad() {
super.viewDidLoad()
UIDevice.currentDevice().proximityMonitoringEnabled = true;
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector(proximityStateDidChange()), name:UIDeviceProximityStateDidChangeNotification, object: nil);
}
y la función:
func proximityStateDidChange() {
//DO WHATEVER I WANT
}
Lo que pongo en la función se ejecuta siempre cuando se ejecuta la aplicación.
EDITAR 2: Probar el código del comentario de Eric D.
let sensor = MySensor() //declared in the VC but globally
override func viewDidLoad() {
super.viewDidLoad()
sensor.activateProximitySensor()
}
Me lanza la excepción:
Espero que alguien pueda ayudar,
¡Gracias por adelantado!