【发布时间】:2018-07-27 10:34:07
【问题描述】:
我在下面粘贴了我的代码。从本质上讲,我得到了一个 SDK,它有一个 JSON 字符串,然后我必须对其进行解析,以便获取生成 QR 码的 base64 字符串。我一直在努力,但代码在“let nsd = ...”行出现错误,并显示消息:“线程 1:致命错误:在展开可选值时意外发现 nil”
如果我出错了,我们将不胜感激。在谈到 Swift 和一般编程时,我是一个新手,所以我觉得这很有挑战性。我也不认为我正确地将响应转换为 JSON,因为这是它第一次出错的地方。
func qrCodeGenerator(payload : String) {
guard let response = /response as a string from SDK/ else {return}
/* convert response string to an NSData response, so as to convert to JSON in the code below */
let nsd: NSData = NSData(base64Encoded: response, options: NSData.Base64DecodingOptions.ignoreUnknownCharacters)!
var jsonResponse = JSON.null
do {
/* convert the response to a json object */
try jsonResponse = JSONSerialization.jsonObject(with: nsd as Data, options: []) as! JSON
/* enter the result array, as the base64 string is contained there */
var result = jsonResponse["result"][0]
var resqr_64 = result["qr_b64"].stringValue
print(resqr_64)
var base64string = resqr_64
/*The base64 string lies beyond the comma*/
var base64image = String(base64string.split(separator: ",")[1]) as String
var decodeString : NSData = NSData(base64Encoded: base64image, options: [])!
var decodedimage: UIImage = UIImage(data: decodeString as Data)!
QRCodeImageView.image = decodedimage
} catch {
print(error)
}
}
任何帮助将不胜感激!非常感谢。
【问题讨论】:
标签: json swift base64 decode qr-code