Переместить PHAsset из одного альбома в другой (Swift)
Я хочу переместить PHAsset
из одного альбома в другой альбом. Вот что я делаю:
func saveImage(image: UIImage, album: PhotoAlbum, completion: (PHFetchResult?)->()) {
var placeholder: PHObjectPlaceholder?
PHPhotoLibrary.sharedPhotoLibrary().performChanges({
// Request creating an asset from the image
let createAssetRequest = PHAssetChangeRequest.creationRequestForAssetFromImage(image)
// Request editing the album
guard let albumChangeRequest = PHAssetCollectionChangeRequest(forAssetCollection: album) else {
assert(false, "Album change request failed")
return
}
// Get a placeholder for the new asset and add it to the album editing request
guard let photoPlaceholder = createAssetRequest.placeholderForCreatedAsset else {
assert(false, "Placeholder is nil")
return
}
placeholder = photoPlaceholder
albumChangeRequest.addAssets([photoPlaceholder])
}, completionHandler: { success, error in
guard let placeholder = placeholder else {
assert(false, "Placeholder is nil")
completion(nil)
return
}
if success {
completion(PHAsset.fetchAssetsWithLocalIdentifiers([placeholder.localIdentifier], options: nil))
}
else {
print(error)
completion(nil)
}
})
}
Проблема в том, что он создает его копию по назначению, а не переезжает. Наконец-то я получил одинаковые изображения в разных альбомах.