我想使用带有C#/ Xamarin的iOS 11的新视觉API检测条形码.
但是,xamarin的VNDetectBarcodesRequest类是抽象的.不是其他请求类型,例如VNDetectRectanglesRequest.框架的这一部分是否未在Xamarin中实现,还是我在这里遗漏了一些东西?
基本上,我想调整矩形检测样本(https://developer.xamarin.com/samples/monotouch/ios11/VisionRectangles/)以检测QR码.
非常感谢你!
解决方法:
更新:此错误已修复,查看xamarin-macios/issues/3140
这是Xamarin生成的绑定中的错误,因为除正确应用的[Abstract]属性外,它已正确绑定.
注意:我创建了一个Github问题:xamarin-macios/issues/3140
由于绑定是正确的,因此您可以通过创建自己的VNDetectBarcodesRequest子类来解决.
VNDetectBarcodesRequest解决方法
public class FixVNDetectBarcodesRequest : VNDetectBarcodesRequest
{
public FixVNDetectBarcodesRequest(NSObjectFlag t) : base(t) { }
public FixVNDetectBarcodesRequest(IntPtr handle) : base(handle) { }
public FixVNDetectBarcodesRequest(VNRequestCompletionHandler completionHandler) : base(completionHandler) { }
}
用法:
var detectBarcodesRequest = new FixVNDetectBarcodesRequest((request, error) =>
{
//
});
不正确的VNDetectBarcodesRequest绑定:
[TV (11,0), Mac (10,13, onlyOn64: true), iOS (11,0)]
[Abstract]
[DisableDefaultCtor]
[BaseType (typeof (VNImageBasedRequest))]
interface VNDetectBarcodesRequest {
[Export ("initWithCompletionHandler:")]
[DesignatedInitializer]
IntPtr Constructor ([NullAllowed] VNRequestCompletionHandler completionHandler);
[Static]
[Protected]
[Export ("supportedSymbologies", ArgumentSemantic.Copy)]
NSString [] WeakSupportedSymbologies { get; }
[Static]
[Wrap ("VNBarcodeSymbologyExtensions.GetValues (WeakSupportedSymbologies)")]
VNBarcodeSymbology [] SupportedSymbologies { get; }
[Protected]
[Export ("symbologies", ArgumentSemantic.Copy)]
NSString [] WeakSymbologies { get; set; }
}