Ich arbeite durch ein Tutorial Project10 und versuche, es in Swift 3.0 zu konvertieren, wie ich gehe. Es ist der normalerweise einfache Fall, einen UIImagePickerController zu verwenden, um ein Bild auszuwählen und es dann in dem Documents Directory zu speichern.Swift 3.0 Schreiben binärer Bilddaten mit schreiben (toFile: atomically :)
Ich erhalte einen Fehler auf dieser Linie:
jpegData.write(toFile: imagePath, atomically: true)
Welche begann sein Leben als dies:
jpegData.writeToFile(imagePath, atomically: true)
Der Fehler will meine Argumente ersetzen:
jpegData.write(to: imagePath, options: true)
Ich bin mir ziemlich sicher, dass das nicht das ist, was ich will, und es führt sowieso zu weiteren String/URL-Fehlern. Die zwei Methoden, in vollem Umfang sind:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
var newImage: UIImage
if let possibleImage = info[UIImagePickerControllerEditedImage] as? UIImage {
newImage = possibleImage
} else if let possibleImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
newImage = possibleImage
} else {
return
}
let imageName = NSUUID().uuidString
let imagePath = getDocumentsDirectory().appendingPathComponent(imageName)
if let jpegData = UIImageJPEGRepresentation(newImage, 80) {
jpegData.write(toFile: imagePath, atomically: true)
}
dismiss(animated: true, completion: nil)
}
func getDocumentsDirectory() -> NSString {
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let documentsDirectory = paths[0]
return documentsDirectory
}
Bin ich einfach verwirrt mit Strings, NSStrings und URLs?
Ich denke, eine Methode ist '.write (to:, atomically,, encoding:)' ... Sie können das verwenden wie '.write (zu: imagePath, atomically: true, encoding: .utf8)' –
Wann Ich versuche, dass ich Error: Extra Argument "Codierung" in Anruf bekomme. Ich hatte diese Methode früher in den Dokumenten gesehen, aber vergessen, es zu versuchen. Danke trotzdem. – Magnas