Как узнать, является ли коллекция PHAssetCollection недавно удаленной коллекцией?

Существует подтип для недавно добавленной коллекции: PHAssetCollectionSubtypeSmartAlbumRecentlyAdded, Однако нетassetCollectionSubtype это идентифицировало бы коллекцию "Недавно удаленный".

Это описание коллекции "Недавно удаленные" в моем случае: (iOS 8.1.3): DF876BFD-...-C97F4628467C/L0/040 Recently Deleted assetCollectionType=2/1000000201

Это указывает, что это типа PHAssetCollectionTypeSmartAlbum, Но какого черта это подтип 1000000201?

201 должно быть PHAssetCollectionSubtypeSmartAlbumPanoramas в соответствии с документами.

Может ли магическое число 1000000201 доверять никогда не меняться? Возможно нет.

Однако вот как вы можете извлечь недавно удаленную коллекцию:

PHFetchResult *smartAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:1000000201 options:nil];

В этом умном альбоме есть большая разница: PHAssetНевозможно удалить (снова), потому что это мусор. Поэтому было бы важно знать, следует ли пользователю предоставлять опцию удаления.

У кого-нибудь есть идея?

1 ответ

Что касается выбора коллекции "Недавно удаленные", вот обходной путь.

PHFetchResult *smartAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum
                                                                      subtype:PHAssetCollectionSubtypeAlbumRegular
                                                                      options:nil];

__block PHAssetCollection *recentlyDeletedCollection;
[smartAlbums enumerateObjectsUsingBlock:^(PHAssetCollection *smartAlbum, NSUInteger idx, BOOL *stop) {
    if ([smartAlbum.localizedTitle isEqualToString:@"Recently Deleted"]) {
        NSLog(@"Recently Deleted album is at %ld", idx);
        recentlyDeletedCollection = smartAlbums[idx];
    }
}];
Другие вопросы по тегам