如何将 Base64 字符串转换为 NSData?

How to convert Base64 string to NSData?

我有一个 iOS 应用程序(用 Swift 编写),它以 JSON 格式从 wcf 服务检索数据。其中一个数据是存储为 base64string 的图像。但是,我无法将 base64string 转换为 NSData.

我的主要目的是将 base64string 一直转换为 blob 以便我可以将其保存在数据库中。另一方面,如果您至少知道其中的一部分,例如从 base64stringNSData 将会有所帮助。

以下代码会让您了解我的 table

let ItemsDB = Table("Items")
let idDB = Expression<String>("ID")
let nameDB = Expression<String>("Name")
let catDB = Expression<String>("Category")
let uomDB = Expression<String>("UOM")
let priceDB = Expression<Double>("Price")
let imageDB = Expression<Blob>("Image")
let actDB = Expression<Bool>("Active")

您可以在网上找到很多示例,但大多数都在 Objective-c 中。例如,Converting between NSData and base64 strings

使用起来非常简单

NSData(base64EncodedString: String, options: NSDataBase64DecodingOptions)

从 Base64 字符串转换为 NSData

 let nsd: NSData = NSData(base64EncodedString: Image, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)!

转换为 Blob

nsd.datatypeValue

这个有效:

Swift 3、4 和 5:

var data = Data(base64Encoded: recording_base64, options: .ignoreUnknownCharacters)

Swift 2:

var data = NSData(base64EncodedString: recording_base64, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)