【发布时间】:2018-11-28 12:14:04
【问题描述】:
当我使用#selector 将函数作为目标添加到UIButton 时,我应该将其标记为@objc,这没关系。但问题是@objc 函数调用的每个函数和方法都必须符合Objective-C,否则应用程序崩溃。
例如,当我使用 Swift 枚举(我也将该枚举声明为 @objc)时,它会因此错误而崩溃 unrecognized selector sent to instance
这是使用@Objc 的预期行为,还是我做错了什么?
如果是,是否有解决方法,或者我应该让 @objc 调用的所有内容都符合 Objective-C 标准(在某些情况下,我需要重新编写一大堆代码)?
【问题讨论】:
-
如何确定“发送到实例的无法识别的选择器”崩溃是因为“@objc”。如果“@objc”有任何问题,我相信编译器不会允许你运行你的代码,也不会有任何运行时错误。因此,您的现金可能在不同的地方,或者您的方法名称可能不匹配。如果可能,还请显示您的代码。
-
@IBAction。@objcMembers. -
这不是预期的。你在做不正确的事情。请创建一个 mcve 来展示您所描述的内容 (stackoverflow.com/help/mcve)
-
代码很大,我正在尝试将其减少为仅导致崩溃的部分。