//这是以编程方式包含我的按钮操作的函数
func didSetCategory(info: FitnessCenterModel) {
myButton.addTarget(self, action: #selector(Function(d: info)), for: .touchUpInside)
}
//我的按钮目标的选择器功能
func Function(d:FitnessCenterModel ) {
print(info)
}
但我无法通过,因为编译器抛出错误“'#selector'的参数未引用'@Objc'方法,属性或初始值
答案 0 :(得分:1)
选择器不引用方法调用,而只引用方法本身。
你在这做什么:
#selector(Function(d: info))
将参数传递给Function
并从中创建一个选择器。你不能这样做。选择器必须没有参数。那么如何传递info
参数呢?
在名为selectedCategory
的类中创建一个属性:
var selectedCategory: FitnessCenterModel!
在致电addTarget
之前,请将info
分配给上述媒体资源:
selectedCategory = info
创建另一个使用参数调用Function
的方法。
func buttonClicked() {
Function(d: selectedCategory)
}
更改addTarget
来电,使用buttonClicked
作为选择器:
#selector(buttonClicked)