使用Avoundation时如何接受多种类型的条形码



我在启动Avoundation时允许几种类型的条形码/QR码很难最后一个

这是相关代码片段

[captureMetadataOutput setMetadataObjectTypes:[NSArray arrayWithObject:AVMetadataObjectTypeQRCode]];
[captureMetadataOutput setMetadataObjectTypes:[NSArray arrayWithObject:AVMetadataObjectTypeCode39Code]

现在,我添加几种类型要接受吗?

使用setMetadataObjectTypes:时,它设置了metadataObjectTypes,即如果有新值,则替换上一个值。它不会"添加/总和"。

因此,使用一个对象([NSArray arrayWithObject:AVMetadataObjectTypeQRCode](而不是使用NSArray,而是使用arrayWithObjects:创建一个数组(请注意" S"(。

[NSArray arrayWithObjects: AVMetadataObjectTypeQRCode, AVMetadataObjectTypeCode39Code, nil]`

用短手语法(等效(:

@[AVMetadataObjectTypeQRCode, AVMetadataObjectTypeCode39Code]

最终:

[captureMetadataOutput setMetadataObjectTypes:[NSArray arrayWithObjects: AVMetadataObjectTypeQRCode, AVMetadataObjectTypeCode39Code, nil];

[captureMetadataOutput setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode, AVMetadataObjectTypeCode39Code]];

最新更新