如果您從base64字符串開始,則應將其解碼爲base64字符串,而不是UTF8
。
if let data = Data(base64Encoded: imageDataString) {
let image = UIImage(data: data)
}
這個片段簡單地取編碼圖像串,解碼成Data
對象,並創建從所述數據的圖像。
如果您使用base64字符串工作了很多,我強烈建議您擴展String
結構功能。
extension String {
//: ### Base64 encoding a string
func base64Encoded() -> String? {
if let data = self.data(using: .utf8) {
return data.base64EncodedString()
}
return nil
}
//: ### Base64 decoding a string
func base64Decoded() -> String? {
if let data = Data(base64Encoded: self) {
return String(data: data, encoding: .utf8)
}
return nil
}
}
這個片斷是從Github,學分斯金格拍攝。
另外一種方法是使用由Leo Dabus,符合斯威夫特約定創建的extension:
extension String {
var data: Data { return Data(utf8) }
var base64Encoded: Data { return data.base64EncodedData() }
var base64Decoded: Data? { return Data(base64Encoded: self) }
}
extension Data {
var string: String? { return String(data: self, encoding: .utf8) }
}
您是否獲得一個JSON API中的字符串或者是你得到只是GIF數據? –