这是我上一个关于将objective-c库绑定到xamarin项目的问题的后续。所以我想我会自己创建 api 定义,但我不知道如何将 Objective-C 委托重写为 C# 委托/事件。我已经了解到,objective-c 委托与 C# 委托不同,而更像 C# 事件。
这是objective-c委托定义(来自头文件):
@protocol LineaDelegate
@optional
-(void)connectionState:(int)state;
@end
这是objective-c类定义(来自头文件):
@interface Linea : NSObject
-(void)connect;
@end
connect 方法在后台工作,并将通过 connectionState 委托通知调用者连接成功。
现在,如何正确绑定 api?到目前为止,这是我的 ApiDefinition.cs:
[BaseType(typeof(NSObject))]
interface Linea{
[Export ("isPresent")]
bool IsPresent();
//the delegate that will be notified of Linea events
[Export("addDelegate:")]
void AddDelegate (NSObject newDelegate);
[Export("connect")]
void Connect ();
}
如何将 Objective-c 委托转换为 Xamarin Studio 和 C# 中有用的东西?