我自己班里的NotificationCenter

时间:2017-04-21 04:08:07

标签: ios swift xcode

我试图在我自己的班级中为通知设置一个观察者。

我们说我们有类似下面的内容,例如,

ViewController

和我的override func viewDidLoad() { super.viewDidLoad() let myClass = MyClass() myClass.run() }

textField

如果我点按NotificationCenter或其他东西来使键盘上升,那么这实际上不会起作用。

如果我在不使用MyClass的情况下执行此操作,或者如果我将对象注册为观察者,则center.addObserver(ViewController.self, selector: #selector(test), name: .UIKeyboardDidShow, object: nil) 肯定有效:

test

然后我当然应该在ViewController中将class function函数实现为var help = 'Put me in the paragraph tag please!' var no = 'Or me, either way it\'s fine!' $('.reset').on('click', function() { $('p').text(''); }); $('.go').on('click', function() { var key = prompt('Enter something bro').toLowerCase(); $('p').text(key); });

但这不是我想要的方式。任何建议或建议可以解释为什么这不起作用?

1 个答案:

答案 0 :(得分:2)

myClass将在viewDidLoad结束时销毁。因为没有任何参考。您应该在ViewController中创建一个属性:

var myClass: MyClass?

override func viewDidLoad() {
  super.viewDidLoad()

  myClass = MyClass()
  myClass?.run()
}