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

我必须在MonoTouch中将这种方法绑定为

NSArray [] SetImage(UIImage OcrImage);

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

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

但是当我调用该方法时,应用程序崩溃了。

崩溃日志

 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

最佳答案

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

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

UIImage [] SetImage(UIImage OcrImage);


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

NSObject [] SetImage(UIImage OcrImage);


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

10-07 19:49
查看更多