我在静态库-(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
答案 0 :(得分:4)
NSArray
是一个数组,因此您不希望(且不能)在C#声明中添加[]
。
如果您知道数组中返回的单类型(例如UIImage
数组),那么您可以将其绑定为:
UIImage [] SetImage(UIImage OcrImage);
否则你可以采用一般方式,例如:
NSObject [] SetImage(UIImage OcrImage);
您也可以将其绑定为NSArray
(不包含[]
),但这很少是最佳选择。