You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中生成Codabar条形码失败求助:报「No code generator selected」错误

解决RSBarcodes_Swift生成Codabar条码时「No code generator selected」错误

你在使用RSBarcodes_Swift生成Codabar条码时遇到「No code generator selected」错误,当前代码依赖RSUnifiedCodeGenerator尝试生成条码但始终失败。

问题原因

RSUnifiedCodeGenerator的generateCode(_:machineReadableCodeObjectType:)方法没有正确将AVMetadataObject.ObjectType.codabar映射到对应的RSCodaBarGenerator,导致无法匹配到合适的条码生成器。

解决方案

方案1:直接使用RSCodaBarGenerator(推荐)

绕过统一生成器的类型映射问题,直接使用Codabar专属生成器:

func generateBarcode(contents: String) {
    // 校验Codabar格式:必须以A/B/C/D作为起始和终止符
    let validStartEndChars = ["A", "B", "C", "D"]
    guard let firstChar = contents.first.map(String.init), validStartEndChars.contains(firstChar),
          let lastChar = contents.last.map(String.init), validStartEndChars.contains(lastChar) else {
        DispatchQueue.main.async {
            self.barcodeImage = Image(systemName: "xmark.circle")
        }
        print("Codabar内容不符合规范:需以A/B/C/D开头和结尾")
        return
    }
    
    let generator = RSCodaBarGenerator()
    generator.fillColor = UIColor.white
    generator.strokeColor = UIColor.black
    
    if let uiImage = generator.generateCode(contents) {
        DispatchQueue.main.async {
            self.barcodeImage = Image(uiImage: uiImage)
        }
    } else {
        DispatchQueue.main.async {
            self.barcodeImage = Image(systemName: "xmark.circle")
        }
        print("Codabar条码生成失败")
    }
}

方案2:修复统一生成器的类型映射(可选)

若坚持使用RSUnifiedCodeGenerator,可尝试直接使用"CodaBar"作为类型参数(部分版本的RSBarcodes_Swift使用该字符串而非AVMetadata的rawValue):

if let uiImage = gen.generateCode("A00031326002A", machineReadableCodeObjectType: "CodaBar") {
    DispatchQueue.main.async {
        self.barcodeImage = Image(uiImage: uiImage)
    }
} else {
    DispatchQueue.main.async {
        self.barcodeImage = Image(systemName: "xmark.circle")
    }
}

关键注意事项

  • Codabar条码必须以A/B/C/D作为起始和终止符,否则生成器会直接失败
  • 移除代码中不必要的iOS 15.4版本判断,RSBarcodes_Swift的Codabar生成是库自身实现,不依赖系统版本

内容的提问来源于stack exchange,提问作者Boaztheostrich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 09:25:36