2015-04-01 83 views
0

我正在嘗試爲iOS庫創建綁定。如何爲extern聲明創建綁定

當創建與此庫本機應用程序,它需要包括宣佈這樣一個全球性的ApplicationKey變量的.h頭文件:

extern const unsigned char ApplicationKey[]; 

,你都應該實現它

const unsigned char ApplicationKey[] = {0x11, ... }; 

現在,當爲這個庫創建Xamarin綁定時,頭文件被Objective Sharpie映射到

partial interface Constants 
{ 
    // extern const unsigned char [] ApplicationKey; 
    [Field ("ApplicationKey")] 
    byte[] ApplicationKey { get; } 
} 

如何將其更改爲可以從C#代碼設置ApplicationKey?

回答

1

你ApiDefination.cs文件應該是這樣的

[BaseType (typeof(NSObject))] 
    public partial interface Constants 
    { 
     [Export ("ApplicationKey")] 
     TypeOfProperyInNativeCode ApplicationKey { get; set; } 
    } 

爲了訪問該屬性創建結合項目並獲得這樣

Binding.Constant cons= new Binding.Constant(); 
cons.ApplicationKey =value; 

爲了更好地理解,你可以不斷類的實例請點擊此鏈接http://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/Walkthrough_Binding_objective-c_library/

+0

它給出錯誤:錯誤CS0452:'byte'類型必須是引用類型才能用作gen中的類型參數'T' eric類型或方法'Foundation.NSArray.ArrayFromHandle (System.IntPtr)'(CS0452) – 2015-04-02 07:14:14

+0

@AndreiN。檢查本地(目標C)代碼中的此屬性的類型,並給出相同的類型,而不是字節[] – Anupam 2015-04-02 07:20:51

+0

變量的本機類型是我的第一篇文章,它的「無符號字符」不確定在C#中使用什麼引用類型導出屬性和編組工作 – 2015-04-02 07:32:35