Xamarin.ios MonotTouch和Objective C之间的绑定NSArray

Xamarin.ios MonotTouch和Objective C之间的绑定NSArray,xamarin.ios,static-libraries,Xamarin.ios,Static Libraries,我创建了一个静态库,并尝试使用 在绑定中,我想将NSArray从MonoTouch传递到Objective C。我在ApiDefinition.cs中定义了它,如 NSObject[]数据数组{get;set;} 当我尝试从MonoTouch传递字符串数组时 var b=新[]{“项目1”、“项目2”、“项目3”} 获取以下错误 不能将类型“String []”隐式转换为MatrouCuff.Frase.NbObj[]/P> 当我试图通过MonoTouch的NSArray时 NSArra

我创建了一个静态库,并尝试使用

在绑定中,我想将NSArray从MonoTouch传递到Objective C。我在ApiDefinition.cs中定义了它,如 NSObject[]数据数组{get;set;}

  • 当我尝试从MonoTouch传递字符串数组时
var b=新[]{“项目1”、“项目2”、“项目3”}

获取以下错误

不能将类型“String []”隐式转换为MatrouCuff.Frase.NbObj[]/P>

  • 当我试图通过MonoTouch的NSArray时
NSArray array1=NSArray.FromObjects(“第1项”、“第2项”、“第3项”)

获取以下错误

不能将类型单调的.Fuff.NSrar隐式转换为单调的.Frase.NSbObj[]/P>


如何将数组从MonotOuch传递到Objective C?

绑定Objective-C数组时,您有多种选择,例如,您可以在
NSObject[]上使用
NSArray
。我更喜欢后者,但两者都是有效的选择

NSArray array1 = NSArray.FromObjects ("Item 1", "Item 2", "Item 3");
使用
NSArray
将使上述代码正常工作,因为它返回
NSArray

o您选择了
NSObject[]
,因此必须遵循您的决定,即使用
NSObject

var b = new[] { "Item 1", "Item 2", "Item 3" };
上面将使用
System.String
的数组。
string
NSObject
之间没有直接转换。您可以将其重新编写为:

var b = new NSObject [] { new NSString ("Item 1"), new NSString ("Item 2"), new NSString ("Item 3") };
这应该满足编译器的要求,并且很可能,如果不看到它,就不能确定这是您的本机API想要的


注意:如果本机API接受
NSString
数组,则可以将其绑定为
NSString[]

绑定objective-c数组时有多种选择,例如,可以在
NSObject[]
上使用
NSArray
。我更喜欢后者,但两者都是有效的选择

NSArray array1 = NSArray.FromObjects ("Item 1", "Item 2", "Item 3");
使用
NSArray
将使上述代码正常工作,因为它返回
NSArray

o您选择了
NSObject[]
,因此必须遵循您的决定,即使用
NSObject

var b = new[] { "Item 1", "Item 2", "Item 3" };
上面将使用
System.String
的数组。
string
NSObject
之间没有直接转换。您可以将其重新编写为:

var b = new NSObject [] { new NSString ("Item 1"), new NSString ("Item 2"), new NSString ("Item 3") };
这应该满足编译器的要求,并且很可能,如果不看到它,就不能确定这是您的本机API想要的

注意:如果本机API接受
NSString
数组,则可以将其绑定为
NSString[]