Binding 生成的绑定事件使MonoTouch崩溃

Binding 生成的绑定事件使MonoTouch崩溃,binding,xamarin.ios,Binding,Xamarin.ios,我有一个蓝牙设备的绑定,具有以下绑定: [BaseType (typeof (CBPeripheralDelegate), Delegates=new string [] {"WeakDelegate"}, Events=new Type [] { typeof (BrspDelegate) })] interface Brsp { //@property (nonatomic, weak) id <BrspDelegate> delegate; [Export

我有一个蓝牙设备的绑定,具有以下绑定:

[BaseType (typeof (CBPeripheralDelegate), Delegates=new string [] {"WeakDelegate"}, 
 Events=new Type [] { typeof (BrspDelegate) })]
interface Brsp
{
    //@property (nonatomic, weak) id <BrspDelegate> delegate;
    [Export ("delegate")]
    [NullAllowed]
    BrspDelegate Delegate { get; set; }

    [Wrap ("WeakDelegate")]
    [NullAllowed]
    NSObject WeakDelegate { get; set; }

    ...other stuff

}
当我为openstatuschanged连接生成的事件处理程序时,它会立即使应用程序崩溃,并且我没有得到任何可能出错的反馈。我还是个绑定新手,所以

我觉得我在“事件=…”部分犯了个错误,有什么想法吗

谢谢


Rogier

如果没有更多细节(例如,符号化的崩溃日志)很难说,但您的部分绑定是反向的(这可能会导致无休止的递归,从而使您的应用程序崩溃)

  • 您的
    委托
    方法应该具有
    [Wrap]
    属性(在
    WeakDelegate
    上);及
  • 您的
    WeakDelegate
    方法应该是在
    委托
    选择器上具有
    [Export]
    属性的方法
例如


这正是问题所在!我对这部分有点困惑,可能是在复制/改编代码时出错了。RTFM,正如Xamarin文档中正确显示的那样。谢谢
    [BaseType(typeof(NSObject))]
    [Model]
    interface BrspDelegate 
    {
         [Abstract]
         [Export("brsp:OpenStatusChanged:"), EventArgs("OpenStatus")]

         ...other stuff
    }
    [Wrap ("WeakDelegate")]
    StronglyTypedDelegate Delegate { get; set; }

    [Export ("delegate")][NullAllowed]
    NSObject WeakDelegate { get; set; }