【发布时间】:2021-11-10 09:57:12
【问题描述】:
正如标题所说,我收到了以下错误消息:
libc++abi: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[{Project}.{UIView} tapAction:]: unrecognized selector sent to instance 0x156406c70'
terminating with uncaught exception of type NSException
当我尝试像这样自定义UIButton 时:
class BaseButton: UIButton {
private var action: ((UIButton)->())?
public func tapInside(target: Any?, action: ((UIButton)->())?) {
self.action = action
self.addTarget(target, action: #selector(tapAction(_:)), for: .touchUpInside)
}
@objc private func tapAction(_ sender: UIButton) {
if let _f = action {
_f(self)
}
}
}
我知道我在不了解基础知识的情况下尝试一些高级的东西。
如果有任何其他解决方案我不必每次都创建tapAction,请告诉我。
更新: 详细信息已添加到错误消息中。
【问题讨论】:
-
完整的错误信息?但
target不是addTarget()中的self,因为稍后您会使用action闭包重定向...
标签: swift uibutton selector addtarget