2

我在静态库中有方法-(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
4

1 回答 1

4

NSArray是一个数组,所以你不想(也不能[]在你的 C# 声明中添加。

如果您知道数组中返回的单一类型(例如 的数组UIImage),那么您可以像这样绑定:

UIImage [] SetImage(UIImage OcrImage);

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

NSObject [] SetImage(UIImage OcrImage);

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

于 2012-09-03T14:04:38.200 回答