首页 > 解决方案 > 这个 base64 相关函数 [在 Swift 中] 有什么作用?

问题描述

有人可以解释下面函数的行为吗?有人建议不要使用NSData. 你有更好的选择吗?如果返回的值是Base64Encoded我可以在其中一个在线上解码encoders/decoders?谢谢。

func stringToData(message: String) -> NSData? {
    let strData = NSData(base64Encoded: message, options: NSData.Base64DecodingOptions.ignoreUnknownCharacters)
    return strData
}

标签: swift

解决方案


NSData(base64Encoded:options:)被记录为尝试使用给定的Base64 编码字符串nil初始化数据对象——如果失败则返回。换句话说; 它将 Base64 编码的字符串解码为 NSData 对象。

在 Swift 中,您可能会使用该类型的base64EncodedString()函数和Data(base64Encoded:)初始化程序Data将数据编码和解码为 Base64 字符串,例如:

let originalData = Data(bytes: [1,2,3,4,5,6,7,8,9,10,11,12])

let encodedAsBase64String = originalData.base64EncodedString()
// "AQIDBAUGBwgJCgsM"
let decodedData = Data(base64Encoded: encodedAsBase64String) // is optional because the decoding can fail
// 12 bytes: <01020304 05060708 090A0B0C>

推荐阅读