Existe-t-il un équivalent writeToFile pour le type 'Data' de Swift 3?
J'ai du code qui renvoie le nouveau remplacement iOS 10 / Swift 3 NSData (?) type: données
if let jpegData = UIImageJPEGRepresentation(newImage, 0.8) { ... }
Je veux écrire cette image sur le disque, mais la méthode writeToFile:
de NSData n'est pas présente pour cette classe. Il a une méthode writeToURL:
, mais cela ne semble pas fonctionner avec un chemin de fichier (et l'ajout d'un composant).
Quelqu'un peut-il clarifier comment je le ferais maintenant, comme c'était le cas dans Swift 2:
jpegData.writeToFile(imagePath, atomically: true)
Merci!
32
demandé sur
Kyle Gillen
2016-07-14 07:46:43
1 réponses
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 coincé avec un path
, convertir un URL
:
do {
try data.write(to: URL(fileURLWithPath: path), options: .atomic)
} catch {
print(error)
}
Mais, en général, il est préférable d'utiliser des références URL
dans votre code de nos jours, en supprimant l'utilisation des chaînes de chemin.
76
répondu
Rob
2016-09-02 06:14:18