有没有为 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)
我不清楚你在问题的第二部分问的是什么。你遇到了什么错误?
(“它给了我错误”不是很有帮助)
我正在尝试为 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)
我不清楚你在问题的第二部分问的是什么。你遇到了什么错误?
(“它给了我错误”不是很有帮助)