【发布时间】:2021-08-14 02:47:44
【问题描述】:
如何在 Swift 5 中将附加参数传递给选择器 @objc 函数?
我想做的是:
@objc func sendLike(_ sender: Any, checkin: String) {
createLikeCheckin(checkin: checkin) // This is the URLSession function
}
// In tableView cellForRowAt
let checkin = self.userCheckins[indexPath.row]
cell.likeButton.addTarget(self, action: #selector(sendLike(_:, checkin: checkin.pk)), for: .touchUpInside)
所以我可以传递签入对象的 pk,然后在 URLSession 中使用。但是我收到错误:调用 Insert ', '
中的参数 #1 缺少参数选择修复后导致我出现此错误:“#selector”的参数不引用“@objc”方法、属性或初始化程序
【问题讨论】:
-
你不能那样做。函数的部分应用不是选择器。您可能想看看如何将闭包变成选择器,例如gist.github.com/cprovatas/98ff940140c8744c4d1f3bcce7ba4543
-
这些都是有用的建议!