美文网首页
iOS扫描12位数条形码却拿到了个13位的条形码怎么办?

iOS扫描12位数条形码却拿到了个13位的条形码怎么办?

作者: 我一不小心就 | 来源:发表于2021-03-25 14:21 被阅读0次

在常见的条形码中,UPC-A码长度是12位的,EAN13码长度是13位的,苹果将UPC-A条码和EAN13条码放到了一起不做区分!UPC-A条码实际上是EAN-13条码的子集。如果一个EAN-13条码的第一位数字是0,那么这个条码既是EAN-13码也同样是是UPC-A码(去掉开头的0)。
解决方法:以0开头的EAN13码实际上就是UPC-A码在前面补了一个0,在AVFoundation扫描得到的结果里只需要判断条码的类别是否AVMetadataObjectTypeEAN13Code并且是否以0开头,如果是的话就把第一位的0直接删掉就好啦~

- (NSString *)getFinalStringValue:(AVMetadataMachineReadableCodeObject *)obj {
    NSString *finalStringVal = @"";
    if ([obj.type isEqualToString:@"org.gs1.EAN-13"] && [obj.stringValue hasPrefix:@"0"]) {
        finalStringVal = [obj.stringValue substringFromIndex:1];
    } else {
        finalStringVal = obj.stringValue;
    }
    return finalStringVal;
}

相关文章

网友评论

      本文标题:iOS扫描12位数条形码却拿到了个13位的条形码怎么办?

      本文链接:https://www.haomeiwen.com/subject/bvolhltx.html