如何从swift 3中的base64获取字节数组?

时间:2017-02-16 23:10:54

标签: swift base64 byte decode

我正在使用swift 3将Android应用程序转换为iOS。我的问题是下一个Java代码块:

String b64 = "KJT-AAAhtAvQ";
byte[] bytesCodigo = Base64.decode(b64, Base64.URL_SAFE);
System.out.Println(bytesCodigo.length) // 9

如何迅速?

由于

1 个答案:

答案 0 :(得分:5)

通常,您只需从base-64字符串创建Data / NSData,而不是字节数组。但请注意,标准Data(base64Encoded:)没有"网址安全"引渡,所以你要替换" - "用" +"和" _"用" /"在尝试转换它之前:

let b64 = "KJT-AAAhtAvQ"
    .replacingOccurrences(of: "-", with: "+")
    .replacingOccurrences(of: "_", with: "/")
let data = Data(base64Encoded: b64)!
print("\(data.count)")

然后您可以将其转换为字节数组,但为什么要这样做呢?如果您告诉我们您使用此功能,我们可以提供进一步的建议。大多数寻找二进制数据的Swift函数都处理Data个对象,而不是字节数组。