gpt4 book ai didi

swift - 保存和生成 AVMetadataMachineReadableCodeObject Swift

转载 作者:搜寻专家 更新时间:2023-11-01 07:23:18 25 4
gpt4 key购买 nike

我在尝试用 Swift 保存 AVMetadataMachineReadableCodeObject 时遇到了一些严重的问题。

我正在使用这个库:https://github.com/yeahdongcn/RSBarcodes_Swift ,但它的文档很糟糕。

基本上,我可以很好地扫描并且可以处理该扫描和 future 的扫描以构建“扫描历史记录”类型的屏幕...当我重新启动应用程序时出现问题 - 我的扫描历史记录是空的(很明显)。我需要以某种方式在本地保存这些扫描,但我不确定该怎么做。

我曾尝试保存扫描的属性,但事实证明在应用重启后重建它同样棘手。我已经尝试将它们保存为自定义对象(这将是理想的并且是可能的 - 除了 AVMetadataMachineReadableCodeObject 部分,因为我收到诸如 non-property 等错误)

我正接近我认为我应该尝试像 Realm 这样的东西的地步,但我以前从未使用过它。

最佳答案

您不能轻松地将 AVMetadataMachineReadableCodeObject 保存到 Core Data,因为它不是受支持的类型并且不符合 NSCoding。切换到 Realm 不会有任何区别,因为它有相同的限制(它不能只保存一个 AVMetadataMachineReadableCodeObject)。原因很相似——在这两种情况下,AVMetadataMachineReadableCodeObject 都不是相应类型的子类,也不是受支持的属性类型之一。

您需要做什么取决于您的扫描历史 UI 的外观。不过,保存 AVMetadataMachineReadableCodeObject 几乎肯定不是最好的方法(您可以通过 Swift 扩展添加 NSCoding,但它可能是错误的答案,即使它有效)。有两种可能性:

  1. 保存扫描代码所代表的数据,而不是代码本身。您可以从 AVMetadataMachineReadableCodeObjectstringValue 属性中获取它。当您想显示扫描历史记录时,生成新图像 以显示。使用 Core Image 很简单——COQRCodeGeneratorCIAztecCodeGeneratorCICode128BarcodeGeneratorCIPDF417BarcodeGenerator 都是内置的。
  2. 在扫描图像的同时拍照,并将照片显示为扫描历史条目。在 UI 中包含扫描代码的 stringValue,以便人们可以看到图像所代表的内容。

关于swift - 保存和生成 AVMetadataMachineReadableCodeObject Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37651727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com