对于Swift来说,我非常环保,而我只想获取我已保存的照片的文件网址。以下是一个小snippet inspired from this StackOverflow question
let imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(imageDataSampleBuffer)
// Save the photo to the album library
let image = UIImage(data: imageData)!
let orientation = ALAssetOrientation(rawValue: image.imageOrientation.rawValue)!
ALAssetsLibrary.writeImageToSavedPhotosAlbum(image.CGImage, orientation: orientation, completionBlock: {
(url: NSURL!, error: NSError!) -> Void in
if error != nil {
print(error)
} else {
// We have the URL here
}
})
然而,我无法为我的生活做好准备。它显示以下错误:
无法调用' writeImageToSavedPhotosAlbum'参数列表 type'(CGImage ?, orientation:ALAssetOrientation,completionBlock:(NSURL!, NSError!) - >空隙)'
它表示期待:
预期类型'的参数列表(CGImage!,orientation: ALAssetOrientation,completionBlock: !ALAssetsLibraryWriteImageCompletionBlock)'
我可以看到一个显而易见的问题是CGImage参数,但我不知道如何更改它,或者如果这是唯一的问题。有没有人看过这个或看到我的菜鸟错误在哪里?
答案 0 :(得分:1)
您有一个可选的image.CGImage
,错误说您必须打开它。
这应该有用。
let library = ALAssetsLibrary()
library.writeImageToSavedPhotosAlbum(image.CGImage!, orientation: orientation, completionBlock: {
url, error in
if error != nil {
print(error)
} else {
// We have the URL here
}
})
新的Photos.framework确实提供了您正在寻找的功能。这是指向developer library的链接,其中包含您要执行的操作的相关部分。