如何在Swift中将观察者添加到默认通知中心?我正在尝试移植此行代码,以便在电池电量变化时发送通知。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryLevelChanged:) name:UIDeviceBatteryLevelDidChangeNotification object:nil];
与Objective-C API相同,但是使用Swift的语法。
Swift 4.2和Swift 5:
NotificationCenter.default.addObserver( self, selector: #selector(self.batteryLevelChanged), name: UIDevice.batteryLevelDidChangeNotification, object: nil)
如果您的观察者没有从Objective-C对象继承,则必须@objc使用方法作为前缀,才能将其用作选择器。
@objc
@objc private func batteryLevelChanged(notification: NSNotification){ //do stuff using the userInfo property of the notification object }
请参阅NSNotificationCenter类参考,与Objective-C API交互