传递参数给函数
Passing a parameter to function
//这是以编程方式包含我的按钮操作的函数
func didSetCategory(info: FitnessCenterModel) {
myButton.addTarget(self, action: #selector(Function(d: info)), for: .touchUpInside)
}
// 我的按钮目标选择器函数
func Function(d:FitnessCenterModel ) {
print(info)
}
但我无法通过,因为编译器抛出错误 “'#selector' 的参数未引用 '@Objc' 方法,属性 或初始值设定项
选择器不引用方法 call,而只是 方法 本身。
你在这里做什么:
#selector(Function(d: info))
正在将一个参数传递给 Function
并由此创建一个选择器。你不能这样做。选择器必须没有参数。那么如何传递info
参数呢?
在您的 class 中创建一个名为 selectedCategory
:
的 属性
var selectedCategory: FitnessCenterModel!
在调用addTarget
之前,将info
赋值给上面的属性:
selectedCategory = info
创建另一个使用参数调用 Function
的方法。
func buttonClicked() {
Function(d: selectedCategory)
}
更改您的 addTarget
调用以使用 buttonClicked
作为选择器:
#selector(buttonClicked)
//这是以编程方式包含我的按钮操作的函数
func didSetCategory(info: FitnessCenterModel) {
myButton.addTarget(self, action: #selector(Function(d: info)), for: .touchUpInside)
}
// 我的按钮目标选择器函数
func Function(d:FitnessCenterModel ) {
print(info)
}
但我无法通过,因为编译器抛出错误 “'#selector' 的参数未引用 '@Objc' 方法,属性 或初始值设定项
选择器不引用方法 call,而只是 方法 本身。
你在这里做什么:
#selector(Function(d: info))
正在将一个参数传递给 Function
并由此创建一个选择器。你不能这样做。选择器必须没有参数。那么如何传递info
参数呢?
在您的 class 中创建一个名为 selectedCategory
:
var selectedCategory: FitnessCenterModel!
在调用addTarget
之前,将info
赋值给上面的属性:
selectedCategory = info
创建另一个使用参数调用 Function
的方法。
func buttonClicked() {
Function(d: selectedCategory)
}
更改您的 addTarget
调用以使用 buttonClicked
作为选择器:
#selector(buttonClicked)