Как мы можем узнать, существует ли изображение в альбоме?

Я создал альбом программно. Я хочу проверить, существует ли изображение в альбоме, прежде чем добавлять новое изображение. вы можете проверить с помощью приведенного ниже кода CustomAlbum.shared.saveImage(image: UIImage()) сохранить изображение, подобное этому.

import Foundation
import Photos
class CustomAlbum {
    static let albumName = "xyz"
    static let shared = CustomAlbum()
    var assetCollection: PHAssetCollection!
    init() {
        func fetchAssetCollectionForAlbum() -> PHAssetCollection! {
            let fetchOptions = PHFetchOptions()
            fetchOptions.predicate = NSPredicate(format: "title = %@", CustomAlbum.albumName)
            let collection = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .any, options: fetchOptions)
            if let _: AnyObject = collection.firstObject {
                return collection.firstObject!
            }
            return nil
        }
        if let assetCollection = fetchAssetCollectionForAlbum() {
            self.assetCollection = assetCollection
            return
        }
        PHPhotoLibrary.shared().performChanges({
            PHAssetCollectionChangeRequest.creationRequestForAssetCollection(withTitle: CustomAlbum.albumName)
        }) { _, _ in
            self.assetCollection = fetchAssetCollectionForAlbum()
        }
    }

    func saveImage(image: UIImage) {
        if assetCollection == nil { return }
        PHPhotoLibrary.shared().performChanges({
            let assetPlaceholder = PHAssetChangeRequest.creationRequestForAsset(from: image).placeholderForCreatedAsset
            let albumChangeRequest = PHAssetCollectionChangeRequest(for: self.assetCollection)
            let assetEnumeration: NSArray = [assetPlaceholder!]
            albumChangeRequest?.addAssets(assetEnumeration)
        }, completionHandler: nil)
    }
    func allPhotos(albumName: String = "xyz", albumImages: @escaping ([UIImage]) -> Void) {
        let group = DispatchGroup()
        var images: [Image] = []
        let fetchOptions = PHFetchOptions()
        fetchOptions.predicate = NSPredicate(format: "title = %@", albumName)

        let resultCollections = PHAssetCollection.fetchAssetCollections(
            with: .album,
            subtype: .albumRegular,
            options: fetchOptions)

        resultCollections.enumerateObjects({
            (object, index, stop) -> Void in
            let collection = object
            let result = PHAsset.fetchAssets(in: collection, options: nil)
            result.enumerateObjects({
                (object, index, stop) -> Void in
                group.enter()
                images.append(object.getfullImage())
                group.leave()
            })
        })
        group.notify(queue: DispatchQueue.main) {
            albumImages(images)
        }
    }
}

с помощью этого кода я извлекаю все изображения альбома и сравниваю их с изображением, которое хочу сохранить.

    PHPhotoLibrary.shared().allPhotos { (images) in 
    let image = UIImage()

}

person Anis Mansuri    schedule 11.12.2019    source источник
comment
поделитесь тем, что вы пробовали до сих пор.   -  person iOSArchitect.com    schedule 11.12.2019
comment
Пожалуйста, добавьте код   -  person Yogesh Patel    schedule 11.12.2019
comment
Как вы хотите проверить, существует ли он, основываясь на имени?   -  person koen    schedule 11.12.2019
comment
можем ли мы сравнить на основе объекта UIImage()? ИЛИ Можем ли мы получить точное изображение, которое мы сохраняем в альбоме? мы можем получить изображение из PHAsset.   -  person Anis Mansuri    schedule 12.12.2019
comment
Нет, я получаю другое изображение при извлечении из альбома. Это не то же изображение, которое я сохранил.   -  person Anis Mansuri    schedule 13.12.2019


Ответы (1)


person    schedule
comment
Спасибо, но я не говорю о сохранении изображения в каталоге документов. Если я удалю приложение, все изображения, которые я сохранил в каталоге документов, будут удалены. Что я сделал, так это сохранил изображение прямо на фотографиях в альбоме, который я создал. - person Anis Mansuri; 11.12.2019