swift - 这个 base64 相关函数 [在 Swift 中] 有什么作用?
问题描述
有人可以解释下面函数的行为吗?有人建议不要使用NSData
. 你有更好的选择吗?如果返回的值是Base64Encoded
我可以在其中一个在线上解码encoders/decoders?
谢谢。
func stringToData(message: String) -> NSData? {
let strData = NSData(base64Encoded: message, options: NSData.Base64DecodingOptions.ignoreUnknownCharacters)
return strData
}
解决方案
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>
推荐阅读
- json - 从 API 检索时出现 JSON 响应错误 NSSingleObjectArray
- dart - 如何在 Dart 的循环中更改对象值
- python - 在 docker 中使用 Python web-server 使用 ML 模型回答 post 请求
- rust - 更新/重新初始化在lazy_static中定义的变量
- javascript - 如何以参数方式将 json 正文中的字段发送到节点 js api?
- websocket - AWS APIGateway WebSockets API 返回 429
- sqlite - 使用 Centos7 的 SQlite 二进制文件升级 Python SQlite3 模块(本地机器)
- google-drive-api - 使用 Soup (Vala) 在 Google Drive API 中获取错误“可能正在发送自动查询”
- html - 如何在html按钮中将图标左对齐和文本居中?
- docker - 从另一个容器连接到 docker-container 中的 RabbitMQ