这个与base64相关的功能在[Swift]中起什么作用?

时间:2018-08-20 05:35:06

标签: swift

有人可以解释以下功能的行为吗?有些人建议不要使用NSData。您有更好的替代品吗?如果返回的值为Base64Encoded,我可以对在线encoders/decoders?之一进行解码吗?谢谢。

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

1 个答案:

答案 0 :(得分:0)

NSData(base64Encoded:options:)被记录为尝试使用给定的Base64 encoded string初始化数据对象-如果失败,则返回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>