Swift: как получить все фотографии (PHAsset), кроме скриншотов, серийной съемки, живых?

Я хочу получить все фотографии (PHAsset), кроме снимков экрана, серийной съемки и живых фотографий из библиотеки фотографий.

Я пробовал с кодом ниже, но он возвращает скриншоты, серийную съемку, живые фотографии.

            let options = PHFetchOptions()
            options.sortDescriptors = [ NSSortDescriptor(key: "creationDate", ascending: true) ]
            options.predicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.image.rawValue)
            let assets = PHAsset.fetchAssets(with: options)

person kuwhkud    schedule 19.07.2019    source источник


Ответы (1)


Свифт 5

private func fetchAllExceptLiveBurstScreenshots() -> PHFetchResult<PHAsset> {
        let options = PHFetchOptions()
        options.sortDescriptors = [ NSSortDescriptor(key: "creationDate", ascending: true) ]
        options.predicate = NSPredicate(
            format: "NOT (((mediaSubtype & %d) != 0) || ((mediaSubtype & %d) != 0) || (burstIdentifier != nil))",
            PHAssetMediaSubtype.photoLive.rawValue,
            PHAssetMediaSubtype.photoScreenshot.rawValue
        )
        return PHAsset.fetchAssets(with: .image, options: options)
}
person Gringo Russo    schedule 12.11.2019