gpt4 book ai didi

swift3 - Swift 3 - 生成的 QR 代码 UIImage 要附加到电子邮件,但出现错误 "found nil while unwrapping an Optional value"

转载 作者:行者123 更新时间:2023-12-03 04:39:54 28 4
gpt4 key购买 nike

我的 QR 码生成器正在工作,它会将图像显示到我的 qrImageView UIImageView

现在,我想做的是将 QR 码图像附加到电子邮件中。尝试了下面指定的代码,但出现错误“展开可选值时发现 nil”。

请帮忙!

生成二维码的函数

  func generateQRCode(from string:String) -> UIImage? {

let data = string.data(using: String.Encoding.isoLatin1)

if let filter = CIFilter(name:"CIQRCodeGenerator") {
filter.setValue(data, forKey: "inputMessage")
let transform = CGAffineTransform(scaleX: 100, y: 100)

if let output = filter.outputImage?.applying(transform) {
return UIImage(ciImage: output)
}
}
return nil
}

@IBAction func generateAction(_ sender: Any) {

if let actualText = qrCodeTextField.text {
let image = generateQRCode(from: actualText)
qrImageView.image = image
}



}

将二维码附加到电子邮件的代码

func configureMailController() -> MFMailComposeViewController {
let mailComposerVC = MFMailComposeViewController()

mailComposerVC.mailComposeDelegate = self

mailComposerVC.setToRecipients(["tsm@yahoo.com"])
mailComposerVC.setSubject("\(subject) QR Code")
mailComposerVC.setMessageBody("Please see attached QR Code", isHTML: false)

//Add Image as Attachment

if let image = qrImageView.image {
let data: NSData = UIImagePNGRepresentation(image)! as NSData

mailComposerVC.addAttachmentData(data as Data, mimeType: "image/png", fileName: "image")

}


return mailComposerVC

}

最佳答案

这对我有用。我必须先将 CIImage 转换为 UIImage,以便将 QRCode 附加到电子邮件中

func convert(cmage:CIImage) -> UIImage
{
let context:CIContext = CIContext.init(options: nil)
let cgImage:CGImage = context.createCGImage(cmage, from: cmage.extent)!
let image:UIImage = UIImage.init(cgImage: cgImage)
return image
}

来源:Unable to convert CIImage to UIImage in Swift 3.0

关于swift3 - Swift 3 - 生成的 QR 代码 UIImage 要附加到电子邮件,但出现错误 "found nil while unwrapping an Optional value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45499463/

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