在我编写的修改过的程序中遇到一个奇怪的问题。在我的第一次迭代中,视图控制器通过标题userSpecifyingInput进行了IBAction,并将所有按钮连接到此IBAction。 为了使设计更复杂,我介绍了userSpecifyingDigit和userSpecifyingLetter,因此有一些按钮连接到第一个IBAction(userSpecifyingDigit),下一个按钮连接到第二个IBAction(userSpecifyingLetter)。 运行我的程序后,它给了我这个错误:
终止app:NSInvalidArgumentException 无法识别的选择器已发送到实例
这些选择器在userSpecifyingInput和userSpecifyingDigit之间交替,这是没有意义的,因为userSpecifyingInput已从我的ViewControllers接口和实现中完全删除。
现在我不确定为什么userSpecifyingInput仍然存在,但在涉及发送的事件之后,我注意到按钮被连接到新的选择器以及旧的选择器。 我不得不从所有按钮的touchupinside事件中手动删除旧选择器。
当然,这似乎不是一个非常方便的程序,如果视图控制器选择器被修改,那么触摸事件应该被自动删除。
我在这里遗漏了什么吗?这是一个非常开放的问题,有不同的答案
答案 0 :(得分:0)
从您的实施中删除IBAction不会删除IB中之前的任何链接。我没有听说过任何XCode / IB偏好来快速解决这个问题。
答案 1 :(得分:0)
听起来像xib仍然认为它的一个对象被连接到UIViewController,但是UIViewController上的函数不再存在。检查并修复此问题......
我还会查看UIViewController,以确保此处不存在自动创建的引用。