传递参数给函数

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)