AVCaptureMetadataOutput的metadataObjectTypes属性的常量?

时间:2014-03-05 03:29:22

标签: objective-c avfoundation constants

使用AVFoundation检测图像中的特征(例如面部或条形码)时,必须调用以下行:

AVCaptureMetadataOutput *metadataOutput = ...;
metadataOutput.metadataObjectTypes = metadataOutput.availableMetadataObjectTypes;

检查availableMetadataObjectTypes会显示以下字符串:

face,
"org.gs1.UPC-E",
"org.iso.Code39",
"org.iso.Code39Mod43",
"org.gs1.EAN-13",
"org.gs1.EAN-8",
"com.intermec.Code93",
"org.iso.Code128",
"org.iso.PDF417",
"org.iso.QRCode",
"org.iso.Aztec"

如果我正在编写条形码扫描应用程序,我不希望框架正在寻找面孔,因此我想传递特定的条形码来寻找,而不是传递metadataOutput.availableMetadataObjectTypes。而不是使用这些硬编码的字符串,我希望它们被定义为某处的常量。

它们是否存在于框架中的任何位置,或者我是否必须使用硬编码的字符串?

1 个答案:

答案 0 :(得分:4)

各种条形码类型都有常量,只有AVMetadataMachineReadableCodeObject类(full list here)。

所以你可以这样做:

metadataOutput.metadataObjectType = @[AVMetadataObjectTypeQRCode, AVMetadataObjectTypeEAN13Code];