【发布时间】:2018-07-13 23:20:11
【问题描述】:
我不断收到此错误:
线程 1:EXC_BREAKPOINT(代码=1,子代码=0x18407cb5c)
每当我运行这段代码时:
import UIKit
import SQLite
class TakeMoney: UIViewController {
//for json
let json = "[{"+"\"UserID\":\""+"\(Int(stored_ID) ?? -1)\""+",\"Name\":"+"\"\(stored_name)\""+"}]"
//
var img : UIImage? = nil
//variable for image display space
@IBOutlet weak var ImageDisplay: UIImageView!
//variable for raw qr image output
var qrCodeImage : CIImage!
override func viewDidLoad() {
super.viewDidLoad()
print(json)
////takes out the input and encodes it
///runs on main thread
DispatchQueue.main.async{
let data = self.json.data(using: String.Encoding.isoLatin1, allowLossyConversion: false)
let filter = CIFilter(name: "CIQRCodeGenerator") //defining filter
filter?.setValue(data, forKey: "inputMessage") //utilising filter
filter?.setValue("L", forKey: "inputCorrectionLevel") //defining the level of quality, H is highest, L is lowest
self.qrCodeImage = filter?.outputImage //getting the filter to output raw image
//to set the size of qr code
let length = self.ImageDisplay.frame.size.width
let height = self.ImageDisplay.frame.size.height
let transformedImage = self.qrCodeImage.transformed(by: CGAffineTransform(scaleX: length, y: height))
//
self.img = UIImage(ciImage: transformedImage)
print(self.img!)
if(self.img == nil){
print("It is empty")
}
else{
self.ImageDisplay.image = self.img
}
}
}
}
此代码应该采用 JSON 值并将其转换为 QR 码,然后通过“ImageDisplay”图像视图元素显示。当我在模拟器上运行它时它可以工作,但是当我在手机上运行它时,它不起作用并且总是崩溃并产生前面所述的错误。
它在必须将 UIImage 分配给图像视图的点处崩溃:
self.ImageDisplay.image = self.img
【问题讨论】:
-
最好告诉我们究竟是哪一行导致了崩溃。
-
@rmaddy 哦,是的....忘了添加...现在编辑它
-
@JonathanLamptey 如果您解决了这个问题,请发布答案。