有没有为 CoreData UUID 对象创建 QR 码的方法?

Any ways of creating QR code for CoreData UUID object?

我正在尝试为 UUID 创建二维码,但最主要的是我看到创建二维码的方式需要使用字符串而不是 UUID,所以这就是我的目标。

var uuid: UUID
var uuidString: {uuid} //cannot convert return expression of type 'UUID' to return type 'String'

另一个选择是

var uuid = UUID().uuidString

但是后来在我尝试使用 qr 生成算法进行练习时出现错误(下面是完整的 qr gen 代码)

import SwiftUI
import CoreImage.CIFilterBuiltins

struct QrCodeGen : View {
    let context = CIContext()
    let filter = CIFilter.qrCodeGenerator()
    var uuid = UUID().uuidString
    var body : some View {
        Image(uiImage: createQrCodeImage(uuid))
    }
    
    func createQrCodeImage(_ uuid: String) -> UIImage{
        let data = Data(uuid.utf8)
        filter.setValue(data, forKey: "inputMessage")
        if let qrCodeImage = filter.outputImage{
            if let qrCodeCGImage = context.createCGImage(qrCodeImage, from: qrCodeImage.extent){
                return UIImage(cgImage:  qrCodeCGImage)
            }
        }
            return UIImage(systemName: "xmark") ?? UIImage()
    }
    
}

生成二维码的用法:

NavigationLink(destination: QrCodeGen(uuid: Item.itemid)) //error: Value of type "NSManagedObject" has no member itemid

但稍后显示 Item.itemid 的文本时一切正常并被识别 重新启动我的机器并重新启动 Xcode 也解决了这个问题。

此代码适用于 return UUID 的 UUIDString:

struct TestUUID {
    var uuid: UUID
    var uuidString: String {return uuid.uuidString}
}

let aTestUUID = TestUUID(uuid: UUID())

print(aTestUUID.uuidString)

我不清楚你在问题的第二部分问的是什么。你遇到了什么错误?

(“它给了我错误”不是很有帮助)