C#-使用Xamarin / Vision框架进行iOS条码检测

我想使用带有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; }
}

回复:vision.cs#L156

上一篇:android-Xamarin无法创建意图


下一篇:c#-开发需要哪些Android SDK软件包?