将NSArray绑定在MonoTouch中

时间:2012-09-03 11:41:01

标签: c# iphone objective-c xcode xamarin.ios

我在静态库-(NSArray*)SetImage:(UIImage *)OcrImage;中有方法。

我必须将此方法绑定在MonoTouch中

NSArray [] SetImage(UIImage OcrImage);

当我尝试在monotouch类中使用方法时

NSArray[] wordArray=test.SetImage(this.imgSnapshot.Image);

但是当我调用这个方法时app会崩溃。

崩溃日志

 System.InvalidCastException: Cannot cast from source type to destination type.
at (wrapper managed-to-native) object:__icall_wrapper_mono_object_castclass (object,intptr)
at MonoTouch.Foundation.NSArray.ArrayFromHandle[NSArray] (IntPtr handle) [0x0003a] in /Developer/MonoTouch/Source/monotouch/src/shared/Foundation/NSArray.cs

1 个答案:

答案 0 :(得分:4)

NSArray是一个数组,因此您不希望(且不能)在C#声明中添加[]

如果您知道数组中返回的类型(例如UIImage数组),那么您可以将其绑定为:

UIImage [] SetImage(UIImage OcrImage);

否则你可以采用一般方式,例如:

NSObject [] SetImage(UIImage OcrImage);

您也可以将其绑定为NSArray(不包含[]),但这很少是最佳选择。