2013-08-21 21 views
4

這是我最後的question有關綁定的Objective-C庫xamarin項目跟進。 所以我想,我將創建API定義我自己,但我無法弄清楚如何改寫的Objective-C委託給C#委託/事件。我已經瞭解到,objective-c委託與C#委託並不相同,但更像C#事件。Xamarin結合的Objective-C庫,C#委託和事件

這是目標c委託定義(來自頭文件):

@protocol LineaDelegate 
@optional 

-(void)connectionState:(int)state; 

@end 

這是目標c類定義(從標題文件):

@interface Linea : NSObject 

-(void)connect; 

@end 

的連接方法在後臺工作,並通過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#中有用的東西?現在

回答

3

,我在這裏張貼問題一刻起,我找出我的自我解決方案...我在這裏發佈的解決方案不僅爲我自己的參考,同時也爲其他人那裏誰將以相同的問題而大傷腦筋。

我發現this tutorial (see chapter 4.3)和算了一下,用微弱的代表。 像魅力一樣工作!