【问题标题】:NotificationCenter observer with generic class具有通用类的 NotificationCenter 观察者
【发布时间】:2017-06-13 10:05:49
【问题描述】:

我有一个通用类:

open class GenericClass<T:MyClass>: NSObject {

     public init(_ myParam:Int) {            
        NotificationCenter.default.addObserver(self, selector: #selector(self.someFunc), name: .MyName, object: nil)
     }

     func someFunc() {

     }
}

但我想知道那些代码不起作用。我得到错误:

'self' 在 super.init 调用之前使用

【问题讨论】:

    标签: ios swift macos generics


    【解决方案1】:

    你只需要调用NSObject的初始化器(你要继承的类):

    open class GenericClass<T:MyClass>: NSObject {
    
        public init(_ myParam:Int) {
            super.init()
            NotificationCenter.default.addObserver(self, selector: #selector(self.someFunc), name: .MyName, object: nil)
        }
    
        func someFunc() {
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      相关资源
      最近更新 更多