Как узнать, является ли коллекция 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];
}
}];