无法在Swift中获取保存到PhotosAlbum的照片的网址

时间:2016-08-17 05:30:10

标签: swift

对于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参数,但我不知道如何更改它,或者如果这是唯一的问题。有没有人看过这个或看到我的菜鸟错误在哪里?

1 个答案:

答案 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的链接,其中包含您要执行的操作的相关部分。