小编典典

如何在Swift 3中创建自定义通知?

swift

在Objective-C中,自定义通知只是一个普通的NSString,但是在Swift 3的WWDC版本中并不明显。


阅读 311

收藏
2020-07-07

共1个答案

小编典典

您也可以为此使用协议

protocol NotificationName {
    var name: Notification.Name { get }
}

extension RawRepresentable where RawValue == String, Self: NotificationName {
    var name: Notification.Name {
        get {
            return Notification.Name(self.rawValue)
        }
    }
}

然后将您的通知名称定义为所需的enum任何位置。例如:

class MyClass {
    enum Notifications: String, NotificationName {
        case myNotification
    }
}

并像这样使用

NotificationCenter.default.post(name: Notifications.myNotification.name, object: nil)

这样,通知名称将与基金会分离Notification.Name。而且您只需要修改协议,以防Notification.Name更改实现。

2020-07-07