Я пытаюсь предоставить пользователю выбор изображения из библиотеки фотографий. Таким образом, я использую UIImagePickerController
для выбора. Но здесь возникает проблема с получением исходного URL-адреса в файловой системе (мне это нужно для CKAsset
).Получение URL-адреса UIImage, выбранного из UIImagePickerController
Мой код.
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 является своего рода загадочным. Он описывает URL-адрес ресурса, но не один в Файловой системе. И это выглядит так: assets-library://asset/asset.JPG?id=B6C0A21C-07C3-493D-8B44-3BA4C9981C25&ext=JPG
.
Согласно этой логике путь является /asset.JPG
где asset.JPG
это имя образа.
Затем я доступ к моей папке Документы и пытается найти там файл с пути:
/Пользователи/Евгений/Library/Developer/CoreSimulator/Devices/3C5E9A23-8220-4B37-BD14-F1E42EEC2C7C не /data/Containers/Data/Application/20EBAAE2-6C6F-4651-A48F-16A222CCB3A2/Documents/asset.JPG
Cryptic как хорошо, но, кажется, реальный путь для не существующего изображения ... нет изображения с этим путем можно найти. И это заставляет меня болеть.
Должен ли я сохранять изображение с самого начала? Или есть ли другой способ?
Я просмотрел несколько руководств, используя API AssetsLibrary, но я не нашел ничего полезного для решения моей проблемы. Заранее спасибо!
Не могли бы вы уточнить свой ответ для Swift 2? Спасибо! –
не работает в Swift 3, я преобразовал код, чтобы он скомпилировался, но возвращенный путь не указывает на выбранное изображение – zumzum
для Swift 3, проверьте это решение: http://stackoverflow.com/questions/4957972/iphone-uiimagepickercontroller -save-the-image-to-app-folder/43456006 # 43456006 – XueYu