NSDataBase64DecodingOptions 总是 returns 无
NSDataBase64DecodingOptions always returns nil
有很多类似的问题,但没有一个能帮助我解决问题,所以我只是不知道该怎么做,只能问。这就是我对 UIImage 进行编码的方式:
let data: NSData = UIImagePNGRepresentation(imageResized)!
let base64String: NSString = data.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)
和解码(如建议):
if let range = base64.rangeOfString("data:image/png;base64,", options: .AnchoredSearch) {
base64.removeRange(range)
}
let decodedData = NSData(base64EncodedString: base64, options: NSDataBase64DecodingOptions(rawValue: 0))
if let decodedImage = UIImage(data: decodedData!) {
self.imageList.append(decodedImage)
}
但是应用程序在初始化 decodedData 时崩溃了,我不知道为什么。
我检查了我的 base64 字符串 here 和 returns 图片。
任何帮助将不胜感激!
将 let decodedData
行替换为:
let decodedData = NSData(base64EncodedString: base64, options: [])
还要确保您使用了正确的变量:
// 1. This should be a variable if you're mutating it.
let base64String = data...
// 2. You should probably do this on your base64String
if let range = base64.rangeOfString(...)
试试这个:
if let decodedData = NSData(base64EncodedString: base64, options:NSDataBase64DecodingOptions.IgnoreUnknownCharacters){
if(decodedData.length > 0){
let imageDecodeData = UIImage(data: decodedData)!
}
else{
print("error")
}
}
有很多类似的问题,但没有一个能帮助我解决问题,所以我只是不知道该怎么做,只能问。这就是我对 UIImage 进行编码的方式:
let data: NSData = UIImagePNGRepresentation(imageResized)!
let base64String: NSString = data.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)
和解码(如建议
if let range = base64.rangeOfString("data:image/png;base64,", options: .AnchoredSearch) {
base64.removeRange(range)
}
let decodedData = NSData(base64EncodedString: base64, options: NSDataBase64DecodingOptions(rawValue: 0))
if let decodedImage = UIImage(data: decodedData!) {
self.imageList.append(decodedImage)
}
但是应用程序在初始化 decodedData 时崩溃了,我不知道为什么。 我检查了我的 base64 字符串 here 和 returns 图片。 任何帮助将不胜感激!
将 let decodedData
行替换为:
let decodedData = NSData(base64EncodedString: base64, options: [])
还要确保您使用了正确的变量:
// 1. This should be a variable if you're mutating it.
let base64String = data...
// 2. You should probably do this on your base64String
if let range = base64.rangeOfString(...)
试试这个:
if let decodedData = NSData(base64EncodedString: base64, options:NSDataBase64DecodingOptions.IgnoreUnknownCharacters){
if(decodedData.length > 0){
let imageDecodeData = UIImage(data: decodedData)!
}
else{
print("error")
}
}