2011-11-07 54 views
0

在我编写的修改程序中遇到奇怪的问题。在我的第一次迭代中,视图控制器有一个标题为userSpecifyingInput的IBAction,并将所有按钮连接到这个IBAction。为了使设计更加复杂,我引入了userSpecifyingDigit和userSpecifyingLetter,并相应地将一些按钮连接到第一个IBAction(userSpecifyingDigit),并且下一个按钮连线到第二个IBAction(userSpecifyingLetter)。 在运行我的程序,它给了我这个错误:奇怪的XIB文件问题

终止应用程序:NSInvalidArgumentException 无法识别的选择发送到实例

而且这些选择都userSpecifyingInput和userSpecifyingDigit之间交替这没有任何意义的userSpecifyingInput完全从取出我的ViewControllers接口和实现。

现在我不确定为什么userSpecifyingInput仍然存在,但在涉及发送的事件后,我注意到按钮连接到新的选择器以及旧的选择器。 我必须手动从所有按钮的touchupinside事件中删除旧的选择器。

当然,这似乎并不是一个非常方便的方法,但如果视图控制器选择器被修改,那么触摸事件应该被自动删除。

我在这里错过了什么吗?这是一个相当不确定的开放式问题

回答

0

从您的实施中消除IBAction不会删除IB中的任何先前链接。我还没有听说过任何XCode/IB首选项来解决这个问题。

+0

所以唯一的出路是手动消除接触事件中的IBActions,以便与以前连接的界面元素? –

0

听起来像xib仍然认为它的一个对象被连接到UIViewController,但UIViewController上的函数不再存在。要在项目导航

  • 检查和修复这个...

    1. 点击XIB文件中选择文件的所有者
    2. 点击连接督察
    3. 验证没有这些连接是无效

    我也会在UIViewController中查看,以确保在这里也不存在自动创建的引用。