2016-05-30 76 views
0

創建NSException我指的是這個post從IntPtr的

private static void MyUncaughtExceptionHandler(IntPtr exception) 
{ 
    // this is not working because NSException(IntPtr) is a protected constructor 
    var e = new NSException(exception); 
    // ... 
} 

我怎麼能在這裏創造一個例外?

我應該這樣做嗎?

NSException exception = (NSException)ObjCRuntime.Runtime.GetNSObject(handle); 

回答

1

你找到了正確的答案自己:

NSException exception = (NSException) ObjCRuntime.Runtime.GetNSObject (handle); 
1

一種選擇是創建NSException自定義子類和揭露受保護的構造。你的ObjCRuntime.Runtime.GetNSObject也應該工作(我認爲 - 不是100%確定)。

您可以創建一個非常簡單的子類是這樣的:

public MyNSException : NSException { 
    public MyNSException(IntPtr handle) : base(handle) { } 
} 

然後你應該能夠創建NSException像這樣:

var exception = new MyNSException(exception); 

我沒有使用任何的這個嘗試代碼,但這應該讓你編譯。