【问题标题】:How to know if an PHAssetCollection is the recently deleted collection?如何知道 PHAssetCollection 是否是最近删除的集合?
【发布时间】:2015-02-02 01:13:34
【问题描述】:

最近添加的集合有一个子类型: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];

这个特别的智能相册有一个主要区别:PHAssets 不能(再次)删除,因为这是垃圾。因此,必须知道是否应该向用户显示删除选项。

有人有想法吗?

【问题讨论】:

  • 你有没有找到除了localizedTitle之外的其他方法来识别被删除的相册
  • 嗨,有谁知道这样做的最新方法吗?
  • 截至 2021 年底,这个神奇的数字 1000000201 似乎仍然有效:<PHAssetCollection: 0x7f82dea22c50> 72053882-BF20-4D4A-B1A5-03D1DDAE1707/L0/040, title:"Recently Deleted", subtitle:"(null)" assetCollectionType=2/1000000201

标签: cocoa cocoa-touch photokit


【解决方案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];
    }
}];

【讨论】:

  • 这仅适用于英语,因为我认为它是“localizedTitle”。
猜你喜欢
  • 1970-01-01
  • 2020-03-26
  • 2014-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多