当前位置: 首页 > 面试题库 >

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

濮俊美
2023-03-14
问题内容

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


问题答案:

您也可以为此使用协议

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更改实现。



 类似资料:
  • 问题内容: 我正在尝试在Log4j2中编写自己的RewritePolicy。该文档指出: RewritePolicy是一个接口,允许实现在将LogEvent传递给Appender之前检查并可能对其进行修改。RewritePolicy声明一个必须执行的名为rewrite的方法。该方法通过LogEvent传递,并且可以返回相同事件或创建一个新事件。 这是我的 java类 : 这是我的 yaml配置 文

  • 问题内容: 我正在http://www.cafeaulait.org/javafaq.html上阅读#6.10项,然后我开始怀疑大型企业如何创建自己的JVM实现。一个人会尝试(或可行)实验性的东西吗? 问题答案: 从技术上讲,创建该新JVM所需的所有信息都是该语言和目标平台的公共规范。即使字节码解释在很大程度上相同,JVM还是需要根据其是要在台式机还是手机上运行而有所不同。 一些开始寻找信息的地方

  • 问题内容: 我正在尝试在javaFX中创建自定义光标。这是我的代码: Windows 8.1的游标创建无效吗? 问题答案: 检出ImageCursor.getBestSize()方法和ImageCursor.getMaximumColors()并查看它们返回的内容,然后尝试匹配最佳大小和最大颜色的自定义光标图像。对于Windows 8.1,这很可能是32x32的光标。 这是来自javadoc 的引

  • 问题内容: 如何在Java中创建自定义异常? 问题答案: 要定义受检查的异常,请创建的子类(或子类的层次结构)。例如: 可能引发或传播此异常的方法必须声明它: …,并且调用此方法的代码必须处理或传播此异常(或同时处理): 你会在上面的示例中注意到该错误IOException已被捕获并重新抛出为。这是用于封装异常的常用技术(通常在实现API时)。 有时在某些情况下,你不想强制每个方法在其throws

  • 问题内容: 出于某种原因,在以下代码段中似​​乎无法使用构造函数委托: 运行此给出。关于为什么的任何想法,或者是否有更好的方法来创建新的子类?我不知道的本地构造函数存在问题吗? 问题答案: 更新您的代码以将原型分配给Error.prototype和instanceof以及您的assert工作。 但是,我只是抛出您自己的对象并只检查name属性。 根据评论进行编辑 在查看了注释并试图记住为什么要分配

  • 我目前使用matplotlib以以下方式生成图例: 这在某种程度上是可行的,见1。但我在我的传奇中复制了信息。 我宁愿把传说分开。所以我有不同颜色的线对应于时间t,一条法线作为我的解析解,一个点作为我的模拟结果。 诸如此类 --(红线)t=25 --(蓝线)t=50 --(绿线)t=500 模拟 --解析解 现在有人知道我如何用matplotlib实现这一点了吗?