为什么我们不需要在选择器中输入参数:: Swift 4 [关闭]

问题描述 投票:1回答:1
NotificationCenter.default.addObserver(self, selector: #selector(addNewTask(_:)), name: NSNotification.Name.init("com.todolistapp.addtask"), object: nil)

@objc func addNewTask(_ notification: NSNotification) {

}

为什么我们不需要显式输入addNewTask参数的值。

swift selector
1个回答
0
投票
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将调用它。那时你实际上会有应该传递给函数的通知对象。

这取决于您是否需要该参数。如果需要,也可以省略它。

© www.soinside.com 2019 - 2024. All rights reserved.