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; }