7

编辑:

几年后,事情变得容易了。现在可以省略 Register()应用程序和应用程序委托上的属性,而是使用:

UIApplication.Main(args, typeof(CustomApp), typeof(CustomAppDelegate));


为了能够覆盖 UIApplication.SendEvent() 我想继承 UIApplication:

public class UIApplicationMain : UIApplication
{
    public UIApplicationMain () : base()
    {
    }

    public override void SendEvent (UIEvent uievent)
    {
        base.SendEvent (uievent);
    }
}

在 main.cs 我使用以下代码:

public class Application
{
    static void Main (string[] args)
    {
        UIApplication.Main (args, "UIApplicationMain", "AppDelegateBase");
    }
}

但它失败了:

Objective-C exception thrown.  Name:

NSInternalInconsistencyException 原因:无法实例化 UIApplication 子类实例。没有加载名为 UIApplicationMain 的类。

所以我想我缺少一些属性。但是什么和在哪里?

4

1 回答 1

14

为您的新类型添加[Register]属性,例如:

 [Register ("UIApplicationMain")]
 public class UIApplicationMain : UIApplication {
    ...

这将允许本机端在 Main 执行时实例化正确的类型。

于 2011-09-30T11:52:51.240 回答