我正在尝试为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生成代码)
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()
}
}生成qr的用法:
NavigationLink(destination: QrCodeGen(uuid: Item.itemid)) //error: Value of type "NSManagedObject" has no member itemid但后来,当显示Item.itemid的文本时,一切都很好,可以识别Reeboting,重新启动我的机器并重新启动Xcode也解决了这个问题。
发布于 2020-12-10 01:04:53
此代码用于返回UUID的UUIDString:
struct TestUUID {
var uuid: UUID
var uuidString: String {return uuid.uuidString}
}
let aTestUUID = TestUUID(uuid: UUID())
print(aTestUUID.uuidString)我不清楚你在问题的第二部分问了什么。你得到了什么错误?
("It It error“没有多大帮助)
https://stackoverflow.com/questions/65219490
复制相似问题