J'ai un code qui retourne le nouveau iOS 10/Swift 3 Type de remplacement NSData (?): Data
if let jpegData = UIImageJPEGRepresentation(newImage, 0.8) { ... }
Je veux écrire cette image sur le disque, cependant writeToFile:
La méthode n'est pas présente pour cette classe. Il a un writeToURL:
, mais cela ne semble pas fonctionner avec un chemin de fichier (et un composant ajouté).
Quelqu'un peut-il préciser comment je procéderais maintenant, comme c'était le cas dans Swift 2:
jpegData.writeToFile(imagePath, atomically: true)
Merci!
Utilisez write(to: fileURL)
.
Par exemple:
let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false).appendingPathComponent("test.jpg")
do {
try jpegData.write(to: fileURL, options: .atomic)
} catch {
print(error)
}
Ou, si vous êtes vraiment bloqué avec un path
, convertissez-le en un URL
:
do {
try data.write(to: URL(fileURLWithPath: path), options: .atomic)
} catch {
print(error)
}
Mais, en règle générale, il est préférable d’utiliser URL
références dans tout votre code, en cessant d’utiliser des chaînes de chemin.