Ich versuche, eine Benutzerauswahl eines Bilds aus der Fotobibliothek bereitzustellen. Also benutze ich UIImagePickerController
zur Auswahl. Aber hier kommt ein Problem mit der ersten URL im Dateisystem (ich brauche das für CKAsset
).Abrufen der URL von UIImage ausgewählt aus UIImagePickerController
Mein Code.
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
let imageURL = info[UIImagePickerControllerReferenceURL] as NSURL
let path = imageURL.path!
let imageName = path.lastPathComponent
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentDirectory = paths.first as String!
let localPath = documentDirectory + "/" + imageName
let imageData = NSData(contentsOfFile: localPath)!
let image = UIImage(data: imageData)!
picker.dismissViewControllerAnimated(true, completion: nil)
}
imageURL ist ein bisschen kryptisch. Es beschreibt die Asset-URL, aber keine Datei im Dateisystem. Und es sieht so aus: assets-library://asset/asset.JPG?id=B6C0A21C-07C3-493D-8B44-3BA4C9981C25&ext=JPG
.
Gemäß dieser Logik ist der Pfad/asset.JPG
, wobei asset.JPG
ein Name des Bildes ist.
Dann bin ich Zugriff auf meine Dokumente-Ordner und versuchen, dort eine Datei mit dem Pfad zu finden:
/Users/Eugene/Library/Developer/CoreSimulator/Geräte/3C5E9A23-8220-4B37-BD14-F1E42EEC2C7C /data/Containers/Data/Application/20EBAAE2-6C6F-4651-A48F-16A222CCB3A2/Documents/asset.JPG
Cryptic als gut, aber scheint für ein nicht vorhandenes Bild einen echten Weg zu sein ... kein Bild mit diesem Pfad kann gefunden werden. Und das macht mich krank.
Muss ich ein Bild von Anfang an speichern? Oder gibt es noch einen anderen Weg?
Ich habe mehrere Tutorials unter Verwendung AssetsLibrary API durchgesehen, aber ich habe nichts nützliches gefunden, um mein Problem zu lösen. Vielen Dank im Voraus!
Können Sie bitte Ihre Antwort für Swift 2 aktualisieren? Vielen Dank! –
funktioniert nicht in Swift 3, ich konvertierte den Code, damit es kompilieren, aber der zurückgegebene Pfad zeigt nicht auf das ausgewählte Bild – zumzum
für Swift 3, überprüfen Sie diese Lösung: http://StackOverflow.com/Questions/4957972/Iphone-UIImagePickerController -save-the-image-to-app-ordner/43456006 # 43456006 – XueYu