我想让用户从照片库中选择一张图片。因此,我正在使用
我的代码。
UIImagePickerController
进行选择。但在获取文件系统中它的初始URL时遇到了问题(我需要这个URL用于CKAsset
)。我的代码。
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看起来有点神秘。它描述了Asset URL,但不是文件系统中的URL,并且格式如下:assets-library://asset/asset.JPG?id=B6C0A21C-07C3-493D-8B44-3BA4C9981C25&ext=JPG
。
根据这个逻辑,路径是/asset.JPG
,其中asset.JPG
是图片的名称。
然后我访问我的文档文件夹并尝试在那里找到一个具有以下路径的文件:
/Users/Eugene/Library/Developer/CoreSimulator/Devices/3C5E9A23-8220-4B37-BD14-F1E42EEC2C7C/data/Containers/Data/Application/20EBAAE2-6C6F-4651-A48F-16A222CCB3A2/Documents/asset.JPG
这个路径也很神秘,但似乎是一个不存在的图像的真实路径......没有任何路径为该路径的图像。这让我很困扰。
我需要从一开始保存图像吗?还是还有其他方法可以解决我的问题?
我已经查阅了几篇使用AssetsLibrary API的教程,但没有找到任何有用的解决方案。提前感谢您!