I am trying to provide the user with an image selection from Photo Library. Thus, I use UIImagePickerController to select. But here there is a problem with getting the source URL in the file system (I need this for CKAsset ).
My 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 is cryptic. It describes the URL of the resource, but not one on the file system. And it looks like this: assets-library://asset/asset.JPG?id=B6C0A21C-07C3-493D-8B44-3BA4C9981C25&ext=JPG .
According to this logic, the path is /asset.JPG , where asset.JPG is the name of the image.
Then I get access to the My Documents folder and try to find the file with the outline there:
/Users/Eugene/Library/Developer/CoreSimulator/Devices/3C5E9A23-8220-4B37-BD14-F1E42EEC2C7C/data/Containers/Data/Application/20EBAAE2-6C6F-4651-A48F-16A222CCB3A2/02
A mysterious, but it seems, real path for a nonexistent image ... No image with this path was found. And it makes me sick.
Do I need to save the image from the very beginning? Or is there another way?
I looked through several tutorials using the AssetsLibrary API, but I did not find anything useful to solve my problem. Thank you in advance!
source share