我在启动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]];