2015-04-01 42 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