如何复制PHAsset?

时间:2015-08-09 07:02:05

标签: ios photokit phasset

我想知道如何复制PHAsset并保留照片的上下文。例如,如果照片位于特定相册中,我希望副本位于原始相邻的相同相册中。如果可能,将保留编辑历史记录,允许用户根据需要将该副本还原为原始文件。

可以实现共享表并共享图像,这将提供保存图像的选项,但这不是真正的重复。保存图像会将其放在所有照片的末尾。如果我创建一个新资产,通过creationRequestForAssetFromImage从我现有的资产中提供图像,那么它也会放在所有照片的末尾。

如何以编程方式复制给定的PHAsset,并保留其在相册层次结构中的位置?

1 个答案:

答案 0 :(得分:0)

来自https://developer.apple.com/library/ios/documentation/Photos/Reference/PHAssetChangeRequest_Class/index.html#//apple_ref/doc/uid/TP40014384-CH1-SW8

  

要设置新创建的资源的元数据属性,请使用   更改请求的相应属性(在修改中列出)   资产)。稍后在同一更改中引用新创建的资产   阻止或在更改块完成后,使用   placeholderForCreatedAsset属性,用于检索占位符对象。

致电creationRequestForAssetFromImage,然后使用您要复制的PHAssetChangeRequestPHAsset上设置相应的元数据。

let request = PHAssetChangeRequest.creationRequestForAssetFromImage(image)
request.creationDate = copiedAsset.creationDate
request.location = copiedAsset.location