一尘不染

Swift中的NSNotificationCenter addObserver

swift

如何在Swift中将观察者添加到默认通知中心?我正在尝试移植此行代码,以便在电池电量变化时发送通知。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryLevelChanged:) name:UIDeviceBatteryLevelDidChangeNotification object:nil];

阅读 420

收藏
2020-07-07

共1个答案

一尘不染

与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 private func batteryLevelChanged(notification: NSNotification){     
    //do stuff using the userInfo property of the notification object
}

请参阅NSNotificationCenter类参考与Objective-C
API交互

2020-07-07