2

现在它AssetsLibrary已被弃用,我们应该使用照片框架,专门PHPhotoLibrary用于将图像和视频保存到用户的相机胶卷。

使用 ReactiveCocoa,这样的请求看起来像:

func saveImageAsAsset(url: NSURL) -> SignalProducer<String, NSError> {
    return SignalProducer { observer, disposable in
        var imageIdentifier: String?
        PHPhotoLibrary.sharedPhotoLibrary().performChanges({
            let changeRequest = PHAssetChangeRequest.creationRequestForAssetFromImageAtFileURL(url)
            let placeholder = changeRequest?.placeholderForCreatedAsset
            imageIdentifier = placeholder?.localIdentifier
        }, completionHandler: { success, error in
            if let identifier = imageIdentifier where success {
                observer.sendNext(identifier)
            } else if let error = error {
                observer.sendFailed(error)
                return
            }
            observer.sendCompleted()
        })
    }
}

我使用Regift从视频中创建了一个 gif ,我可以验证该 gif 是否存在于我的临时目录中。但是,当我将该 gif 保存到相机胶卷时,我收到了一个神秘的错误:NSCocoaErrorDomain -1 (null),这真的非常有用。

有没有人遇到过这个问题?

4

1 回答 1

0

你可以试试这个。

let data = try? Data(contentsOf: /*Your-File-URL-Path*/)
PHPhotoLibrary.shared().performChanges({
    PHAssetCreationRequest.forAsset().addResource(with: .photo, data: data!, options: nil)
})
于 2017-10-27T03:31:36.707 回答