按钮单击中的NSInvalidArgumentException错误 - xamarin

时间:2013-02-16 18:52:01

标签: xamarin.ios xamarin

我一直关注xamarin网站提供的“Hello, iPhone”教程。我现在已经完成了所有步骤。现在,我运行应用程序并单击“操作1”按钮我收到此错误

抛出Objective-C异常。名称:NSInvalidArgumentException原因: - [HelloWorld_iPhoneViewController actionButtonClick:]:无法识别的选择器发送到实例0xb3a5a30 enter image description here 我该如何解决这个问题?我使用的是最新版本的MonoDevelop + MonoTouch

static void Main (string[] args)
    {
        // if you want to use a different Application Delegate class from "AppDelegate"
        // you can specify it here.
        UIApplication.Main (args, null, "AppDelegate"); <-- HERE
    }

我的代码已上传到here

3 个答案:

答案 0 :(得分:9)

如果查看按钮的连接(在Xcode中),您将看到已向按钮添加了2个动作 - 一个名为actionButtonClick,另一个名为actnButtonClick。

在控制器中,MonoTouch似乎只为第二个动作添加了部分方法,而不是崩溃的动作。

我删除了名为actionButtonClick的动作(离开actnButtonClick)并运行了运行良好的样本。

答案 1 :(得分:6)

在Jonathan Peppers撰写的“Xamarin跨平台应用程序开发”一书中,我的“Hello Phone”示例遇到了同样的“非常新问题”。

这就是我所做的修复它。

首先,我换成了Xamarin Studio, 单击MainStoryboard.storyboard文件或选项卡(以显示电话布局), 单击布局中的“按钮”,在右下方窗口中显示其“属性”。

然后我在“属性”窗口中选择了“事件”(从显示“窗口小部件”,“布局”,“事件”的按钮。

最后,在名为“Up Inside”的项目下,有一个小的“x”可用于删除那里列出的事件处理程序 - 我记得它被命名为button_TouchUpInside(或类似的东西)。

示例代码(本书的第25页)是为按钮添加事件处理程序,因此这个其他处理程序是一个额外的(未写入的?),并且删除对它的引用使得该示例正常工作。

答案 2 :(得分:0)

只需使用源代码编辑器打开storyboard文件,然后删除您不希望在该按钮下列出的任何连接。

<button ...>
  .
  .
  .

   <connections>
         <!-- remove any connections here that you don't want -->             
   </connections>

</button>