具有泛型类的NotificationCenter观察者

时间:2017-06-13 10:05:49

标签: ios swift macos generics

我有一个通用类:

open class GenericClass<T:MyClass>: NSObject {

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

     func someFunc() {

     }
}

但我不知道那些代码是行不通的。我收到错误:

  在super.init call之前使用

'self'

1 个答案:

答案 0 :(得分:0)

你只需要调用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() {

    }
}