我一直关注xamarin网站提供的“Hello, iPhone”教程。我现在已经完成了所有步骤。现在,我运行应用程序并单击“操作1”按钮我收到此错误
抛出Objective-C异常。名称:NSInvalidArgumentException原因: - [HelloWorld_iPhoneViewController actionButtonClick:]:无法识别的选择器发送到实例0xb3a5a30 我该如何解决这个问题?我使用的是最新版本的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
答案 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>