Датчик приближения в Swift (от Objective-C)
Я сравнительно новый пользователь Swift, и теперь мне нужно воспользоваться датчиком приближения iPhone. Мне не важно расстояние, но я хочу знать, когда что-то рядом с iPhone.
Поэтому я нашел этот код в Objective-C, который работал, но он мне нужен в Swift. Я пробовал несколько способов, но любой работал. Вот код, который мне нужен:
- (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
}
РЕДАКТИРОВАТЬ 1: Что я попробовал, так это:
override func viewDidLoad() {
super.viewDidLoad()
UIDevice.currentDevice().proximityMonitoringEnabled = true;
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector(proximityStateDidChange()), name:UIDeviceProximityStateDidChangeNotification, object: nil);
}
и функция:
func proximityStateDidChange() {
//DO WHATEVER I WANT
}
То, что я положил в функцию, она выполняется всегда, когда приложение выполняется.
РЕДАКТИРОВАТЬ 2: Пробуем код комментария Эрика Д.
let sensor = MySensor() //declared in the VC but globally
override func viewDidLoad() {
super.viewDidLoad()
sensor.activateProximitySensor()
}
Выкидывает мне исключение:
Надеюсь, кто-то может помочь,
Заранее спасибо!