Si vous démarrez à partir d'une chaîne base64, vous devez la décoder en tant que chaîne base64 et non en UTF8
.
if let data = Data(base64Encoded: imageDataString) {
let image = UIImage(data: data)
}
Cet extrait prend simplement la chaîne d'image encode, décode dans un objet Data
et créer une image à partir des données.
Si vous travaillez beaucoup en utilisant la chaîne base64, je vous suggère fortement d'étendre les fonctionnalités de la structure 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
}
}
Cet extrait a été prise de Github, crédits à Stringer.
également une autre méthode consiste à utiliser le extension créé par Leo Dabus qui est conforme à la convention Swift:
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) }
}
Obtenez-vous une chaîne dans une api JSON ou deviennent vous venez les données gif? –