我有以下扩展名:
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数据转换为字符串的原因是什么?