NotificationCenter.default.addObserver(self, selector: #selector(addNewTask(_:)), name: NSNotification.Name.init("com.todolistapp.addtask"), object: nil)
@objc func addNewTask(_ notification: NSNotification) {
}
为什么我们不需要显式输入addNewTask参数的值。
NotificationCenter.default.addObserver(self, selector: #selector(addNewTask(_:)), name:
NSNotification.Name.init("com.todolistapp.addtask"), object: nil) //1
@objc func addNewTask(_ notification: NSNotification) { //2
}
在第1行,您只是告诉NotificationCenter您想要收听特定类型的通知,并且当该通知被触发时,您希望调用一个函数。你讲的是使用selector
的方法。使用函数名称创建选择器。
当您在第1行时,将不会调用您指定的方法。当实际触发通知时,NotificationCenter
将调用它。那时你实际上会有应该传递给函数的通知对象。
这取决于您是否需要该参数。如果需要,也可以省略它。