照片和视频未保存在我的自定义相册中
Posted
技术标签:
【中文标题】照片和视频未保存在我的自定义相册中【英文标题】:Photos and Videos are not saving in my Custom Photo Album 【发布时间】:2017-12-20 22:08:05 【问题描述】:照片和视频未保存在我的自定义相册 (TestAlbum) 中。相反,它保存在相机胶卷中。您能帮我找出问题并帮助我更正代码吗?
phphotoLibrary.shared().performChanges(
let albumName = "TestAlbum"
let assetCollection: PHAssetCollection!
let fetchOptions = PHFetchOptions()
PHAssetCollectionChangeRequest.creationRequestForAssetCollection(withTitle: albumName)
fetchOptions.predicate = NSPredicate(format: "title = %@", albumName)
let collection = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .any, options: fetchOptions)
if let _: AnyObject = collection.firstObject
collection.firstObject
let options = PHAssetResourceCreationOptions()
options.shouldMoveFile = true
let creationRequest = PHAssetCreationRequest.forAsset()
creationRequest.addResource(with: .video, fileURL: outputFileURL, options: options)
, completionHandler: success, error in
if !success
print("Could not save movie to photo library: \(String(describing: error))")
cleanUp()
)
【问题讨论】:
执行performChanges()
只运行creationRequestForAssetCollection(withTitle:)
。在完成处理程序中,执行另一个 performChanges()
以实际将您的资产添加到集合中。编辑:我不知道它是否真的很重要,但我使用creationRequest.addAsset()
而不是creationRequest.addResource()
。好久没用 Objective-C 写这段代码了
感谢您的更新,但它没有解决问题。
@AlejandroIván 嗨,谢谢你的好建议但我想将.shouldMoveFile
设置为true
那么我该如何处理creationRequestForAssetCollection
?无法为addAssets
放置选项参数
【参考方案1】:
与上面的 cmets 一样,我会将相册的创建和照片/视频的保存分为两个 performChanges 块。但是我在您的代码中没有看到您实际上将资产(照片/视频)添加到您的资产集合(相册)中。为此,请执行以下操作
let assetPlaceholder = creationRequest.placeholderForCreatedAsset
let albumChangeRequest = PHAssetCollectionChangeRequest(for:collection)
if let changeRequest = albumChangeRequest, let placeholder = assetPlaceholder
changeRequest.addAssets(NSArray(array:[placeholder]))
【讨论】:
以上是关于照片和视频未保存在我的自定义相册中的主要内容,如果未能解决你的问题,请参考以下文章