为啥 PHAsset fetchAssetsWithOptions 不返回所有资产?
Posted
技术标签:
【中文标题】为啥 PHAsset fetchAssetsWithOptions 不返回所有资产?【英文标题】:Why PHAsset fetchAssetsWithOptions doesn't return all assets?为什么 PHAsset fetchAssetsWithOptions 不返回所有资产? 【发布时间】:2015-04-14 15:41:33 【问题描述】:我的照片流中有 75 张照片,相机胶卷中有 1 张照片(不在我的照片流中)。所以我总共有 76 张照片。但后续代码仅返回 51 张照片:
PHFetchOptions *options = [[PHFetchOptions alloc] init];
options.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
assetsFetchResults = [PHAsset fetchAssetsWithOptions:options];
我知道:
如果在 ios 8.1 或之后链接的应用调用此方法,则 结果不包括从 iTunes 同步到设备的照片 或存储在 iCloud 共享照片流中的照片。
但以上照片都不是来自 iCloud 共享照片流。
【问题讨论】:
试试这个 - [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:options]; 你尝试过朋友圈收藏吗? @UttamSinha 不,我不想要时刻。 【参考方案1】:不是最漂亮的,但尝试以下获取所有资产:
NSMutableArray *_assets = [NSMutableArray new];
PHFetchResult *fr = [PHAssetCollection fetchMomentsWithOptions:nil];
for (PHAssetCollection *collection in fr)
PHFetchResult *_fr = [PHAsset fetchAssetsInAssetCollection:collection options:nil];
for (PHAsset *asset in _fr)
[_assets addObject:asset];
【讨论】:
以上是关于为啥 PHAsset fetchAssetsWithOptions 不返回所有资产?的主要内容,如果未能解决你的问题,请参考以下文章
PHAsset,如何在应用重启后检索特定的 PHAsset 对象(ios8 Photos)
如何在 iOS 中通过 UIActivityViewController 导出 PHAsset 视频
如何从 PHAsset 获取图像 URL?是不是可以使用 PHAsset URL 将图像保存到文档目录?