NSDataBase64DecodingOptions is returning nil value

ⅰ亾dé卋堺 提交于 2019-12-12 09:16:29

问题


I am trying to parse base64 type into imageData. But my NSDataBase64DecodingOptions returns nil. I printed decodedData and it is nil. My code is here

var base64String = arrayText["auto_type_android_img"] as String

println("basestring64 is \(base64String)")

let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions(rawValue: 0))

println("base string is: \(decodedData)")
if let decodedImage = UIImage(data: decodedData!) {

    imageTypeOfCar?.image = decodedImage
}

回答1:


Your base64String is

data:image/png;base64,iVBORw0KGgoA......YII=

The initial "data:image/png;base64," is not part of the Base64 encoding and must be removed before the string can be decoded:

if let range = base64String.rangeOfString("data:image/png;base64,", options: .AnchoredSearch)  {
    base64String.removeRange(range)
}

Then

let decodedData = NSData(base64EncodedString: base64String, options: nil)
if let decodedImage = UIImage(data: decodedData!) {
    imageTypeOfCar?.image = decodedImage
}

succeeds and displays



来源:https://stackoverflow.com/questions/29438793/nsdatabase64decodingoptions-is-returning-nil-value

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!