【问题标题】:NSDataBase64DecodingOptions always returns nilNSDataBase64DecodingOptions 总是返回 nil
【发布时间】:2016-05-17 15:29:10
【问题描述】:

有很多类似的问题,但没有一个能帮助我,所以我不知道该怎么做,只能问。这就是我对 UIImage 进行编码的方式:

       let data: NSData = UIImagePNGRepresentation(imageResized)!
       let base64String: NSString = data.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)

和解码(建议here):

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 并返回了图片。 任何帮助将不胜感激!

【问题讨论】:

    标签: ios swift base64 decode encode


    【解决方案1】:

    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(...)
    

    【讨论】:

    • 如果 base64 是 NSString,decodedData 显示错误 - let decodedData = NSData(base64EncodedString: base64 as String, options: [])
    • 您不需要将其转换为NSString,请参阅更新后的答案。
    • base64 是一个变量,我正在执行 rangeOfString(),但我的 base64 字符串在此范围之前有效。我按照您的建议更新了 let decodedData 但结果相同
    【解决方案2】:

    试试这个:

       if let decodedData = NSData(base64EncodedString: base64, options:NSDataBase64DecodingOptions.IgnoreUnknownCharacters){
            if(decodedData.length > 0){
                let imageDecodeData =  UIImage(data: decodedData)!
            }
            else{
                print("error")
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2015-06-08
      • 2017-03-28
      • 2015-03-05
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多