如何知道 PHAssetCollection 是否是最近删除的集合?

Jen*_*nsD 5 cocoa cocoa-touch photokit

最近添加的集合有一个子类型: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];
Run Code Online (Sandbox Code Playgroud)

这个特定的智能相册有一个主要区别:PHAssets 不能(再次)删除,因为这是垃圾。因此,了解是否应向用户提供删除选项至关重要。

有人有想法吗?

Vin*_*det -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];
    }
}];
Run Code Online (Sandbox Code Playgroud)

  • 我认为这仅适用于英语,因为它是“localizedTitle”。 (4认同)