我在静态库-(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
(不带[]
),但这很少是最佳选择。