Näherungssensor in Swift (ab Objective-C)

Ich bin ein relativ neuer Benutzer, der sich schnell zurechtfindet, und jetzt muss ich den Näherungssensor eines iPhones nutzen. Die Entfernung spielt keine Rolle, aber ich möchte wissen, wann sich etwas in der Nähe des iPhones befindet.

So habe ich diesen Code in Objective-C gefunden, der funktioniert hat, aber ich brauche ihn in Swift. Ich habe einige Möglichkeiten ausprobiert, aber keine hat funktioniert. Also hier ist der Code, den ich brauche:

- (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
}

EDIT 1: Was ich versucht habe, war das:

override func viewDidLoad() {
        super.viewDidLoad()
        UIDevice.currentDevice().proximityMonitoringEnabled = true;

        NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector(proximityStateDidChange()), name:UIDeviceProximityStateDidChangeNotification, object: nil);
}

und die Funktion:

func proximityStateDidChange() {
        //DO WHATEVER I WANT
}

Was ich in die Funktion eingegeben habe, wird immer ausgeführt, wenn die App ausgeführt wird.

EDIT 2: Versuch den Code von Eric D. Kommentar

let sensor = MySensor() //declared in the VC but globally

override func viewDidLoad() {
        super.viewDidLoad()
        sensor.activateProximitySensor()
}

Wirft mir die Ausnahme:

Hoffentlich kann jemand helfen,

Danke im Voraus

Antworten auf die Frage(8)

Ihre Antwort auf die Frage