Ios 如何在#选择器中添加默认参数值
我有一个功能:Ios 如何在#选择器中添加默认参数值,ios,swift,function,addtarget,Ios,Swift,Function,Addtarget,我有一个功能: func handleChange(isShown:Bool){ if isShown { // do something A }else{ // do something B } } func handleChange(sender: UISlider) { // logic based on the action or slider doSomething(i
func handleChange(isShown:Bool){
if isShown {
// do something A
}else{
// do something B
}
}
func handleChange(sender: UISlider) {
// logic based on the action or slider
doSomething(isShown: true)
}
func doSomething(isShown: Bool) {
// make your changes using the parameters here
}
如果我想让UISlider添加上述操作,并将isShown默认值设置为false,我将在另一个函数中使用true调用方法handleChange(isShown:Bool)
。
错误代码如下:
slider.addTarget(self, action: #selector(handleValue(isShown:false)), for: .valueChanged)
我知道正确的代码应该是:
slider.addTarget(self, action: #selector(handleValue(isShown:)), for: .valueChanged)
我只是想知道如何在swift中将“isShown”设置为false?非常感谢您的回复。一个解决方案是使用一个与
选择器
功能分开的助手功能。选择器函数可以调用helper函数,该函数可以包含任意多个参数
添加目标:
slider.addTarget(self, action: #selector(handleChange(_ sender: UISlider)), for: .valueChanged)
目标功能:
func handleChange(isShown:Bool){
if isShown {
// do something A
}else{
// do something B
}
}
func handleChange(sender: UISlider) {
// logic based on the action or slider
doSomething(isShown: true)
}
func doSomething(isShown: Bool) {
// make your changes using the parameters here
}
辅助功能:
func handleChange(isShown:Bool){
if isShown {
// do something A
}else{
// do something B
}
}
func handleChange(sender: UISlider) {
// logic based on the action or slider
doSomething(isShown: true)
}
func doSomething(isShown: Bool) {
// make your changes using the parameters here
}
你不能。没有参数,或者参数必须是
UISlider
实例。带参数的语法必须是handleChange(\usender:UISlider)
您不能这样做。您只能传递发送方
,在本例中,它是一个UISlider
。您的“正确代码”不是。请参阅我编辑的第一条评论。@vadian、@dfd、@Jaydeep谢谢,我将进一步了解“addTarget”,谢谢您的回复