MonoTouch自定义绑定对委托中的一些方法不起作用



我有以下协议到本机库,我试图为其编写MonoTouch绑定(它也有一个称为Brsp的接口部分)。

@protocol BrspDelegate <NSObject>
@required
- (void)brsp:(Brsp*)brsp OpenStatusChanged:(BOOL)isOpen;
- (void)brsp:(Brsp*)brsp SendingStatusChanged:(BOOL)isSending;
@optional
- (void)brspDataReceived:(Brsp*)brsp;
- (void)brsp:(Brsp*)brsp ErrorReceived:(NSError*)error;
- (void)brspModeChanged:(Brsp*)brsp BRSPMode:(BrspMode)mode;
@end

MonoTouch绑定:

[BaseType(typeof(NSObject))]
[Model]
interface BrspDelegate 
{
    [Abstract]
    [Export("brsp:OpenStatusChanged:"), EventArgs("OpenStatus")]
    void OpenStatusChanged(Brsp brsp, bool isOpen);
    [Abstract]
    [Export("brsp:SendingStatusChanged:"), EventArgs("SendingStatus")]
    void SendingStatusChanged(Brsp brsp, bool isSending);
    [Export("brspDataReceived:")]
    void DataReceived(Brsp brsp);
    [Export("brsp:ErrorReceived:"), EventArgs("Error")]
    void ErrorReceived(Brsp brsp, NSError error);
    [Export("brspModeChanged:"), EventArgs("Mode")]
    void ModeChanged(Brsp brsp, BrspMode mode);
}

正在调用打开状态、发送状态和错误接收方法,但模式更改不起作用。Delegate在Brsp类中被引用,那部分应该能工作。在某一点上,我使模型也工作了,所以我知道当我在Brsp类上调用"changeMode"时调用了它。但是后来我把它搞砸了,现在它不再工作了…

另外,现在我正在使用Delegate私有类,而不是基于事件的方法。因为当我尝试为上面的一个方法连接生成的事件时,应用程序崩溃了,没有任何错误或来自MonoTouch的警告。

我怀疑某些东西不是100%正确的绑定,所以方法不是粘在一起正确,但我已经尝试了很多,很多不同的东西和AFAIK这应该工作…

任何想法?

- (void)brspModeChanged:(Brsp*)brsp BRSPMode:(BrspMode)mode;

缺少一个参数。试一试:

[Export("brspModeChanged:BRSPMode:"), EventArgs("Mode")]
void ModeChanged(Brsp brsp, BrspMode mode);

最新更新