2011-09-30 13 views
6

編集:MonotouchでUIApplicationをサブクラス化する方法は?

2年後、物事はより簡単です。私がしたい)UIApplication.SendEventを(上書きすることができるようにするために

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


:代わりに Register()属性は、両方のアプリケーションとアプリデリゲートにし、使用を省略することが可能になりましたサブクラスのUIApplication:私はこのコードを使用main.csで

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

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

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

しかし、それはで失敗します。

Objective-C exception thrown. Name: 

NSInternalInconsistencyException理由: のUIApplicationサブクラスのインスタンスをインスタンス化することができません。 UIApplicationMainという名前のクラスは、 がロードされていません。

だから私は推測するいくつかの属性がありません。しかし、どこで、どこ?メインが実行されます時にネイティブ側が正しい型をインスタンス化することができます

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

答えて

10

はあなたのような新しいタイプの、へ属性[登録]をを追加します。

+0

良い神!それは時々とても簡単です! – Krumelur

関連する問題