解码base 64 swift 2.3

时间:2016-12-22 14:11:18

标签: ios swift base64 optional

我有以下扩展名:

extension String {

    func fromBase64() -> String? {
        guard let data = NSData(base64EncodedString: self, options: NSDataBase64DecodingOptions(rawValue: 0)) else {
            return nil
        }

        return String(data: data, encoding: NSUTF8StringEncoding)!
    }

    func toBase64() -> String? {
        guard let data = self.dataUsingEncoding(NSUTF8StringEncoding) else {
            return nil
        }

        return data.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
    }
}

我有一个64位编码字符串:R79gQDNTt / 0 + cjU7pduqfA ==

func doStuff(sample : String){

    let sampleBase64Decoded = sample.fromBase64()
}

调用此函数时,(doStuff(" R79gQDNTt / 0 + cjU7pduqfA =="))在解开可选项时,我发现运行时错误,指的是找到nil:

return String(data: data, encoding: NSUTF8StringEncoding)!

Swift无法将base64数据转换为字符串的原因是什么?

0 个答案:

没有答案