でセレクタを使用するためのベストプラクティスは何ですか、私は次の方法を行うことができます:Xcodeの9.0ベータ2(スウィフト4.0)で、しかし通知を登録するには、スウィフト3で通知
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.n1(notification:)), name: Notification.Name("123"), object: nil)
func n1(notification: Notification){
print("123")
}
// #selector is more brief
NotificationCenter.default.addObserver(self, selector: #selector(n2), name: Notification.Name("456"), object: nil)
func n2(notification: Notification){
print("456")
}
を、Iこの方法で通知を登録すると、オブジェクトメソッドはプレフィックス@objc
を持つ必要があります。なぜですか?通知を使用するベストプラクティスは何ですか?
Argument of '#selector' refers to instance method 'n1(notification:)' that is not exposed to Objective-C
//Add '@objc' to expose this instance method to Objective-C
@objc func n1(notification: Notification){
print("123")
}
@objc func n2(notification: Notification){
print("456")
}