【问题标题】:NSInvalidArgumentException error in button click - xamarin按钮单击时出现 NSInvalidArgumentException 错误 - xamarin
【发布时间】:2013-02-16 18:52:01
【问题描述】:

我一直在关注 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

【问题讨论】:

    标签: xamarin.ios xamarin


    【解决方案1】:

    如果您查看按钮的连接(在 Xcode 中),您会发现您已向按钮添加了 2 个操作 - 一个称为 actionButtonClick,另一个称为 actnButtonClick。

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

    我删除了名为 actionButtonClick 的操作(留下了 actnButtonClick)并运行了运行良好的示例。

    【讨论】:

      【解决方案2】:

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

      这就是我为修复它所做的。

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

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

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

      示例代码(本书的第 25 页)为按钮添加了一个事件处理程序,所以这个另一个处理程序是一个额外的(未编写的?)一个,删除对它的引用使示例工作正常。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-03
          • 2020-01-08
          • 1970-01-01
          • 2023-03-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多