为啥 PHAssetCollection 计数为 0?

Posted

技术标签:

【中文标题】为啥 PHAssetCollection 计数为 0?【英文标题】:Why is PHAssetCollection Count 0?为什么 PHAssetCollection 计数为 0? 【发布时间】:2014-10-27 21:50:12 【问题描述】:

我正在尝试讨论 ios 8 的照片编辑功能的新照片功能。他们的文档非常稀少,因此我希望您能就可能发生的事情提供一些意见。

我正在尝试获取用户保存的所有图像。我正在提取,但它一直告诉我结果大小为 0。它还会发出一个奇怪的错误

func initController()
    
        _userAlbums = PHCollectionList.fetchTopLevelUserCollectionsWithOptions(nil)//GET PERMISSION BEFORE DOING THIS
        println("Albums count is \(_userAlbums.count)") //error when printing this
    

打印出来

2014-10-27 17:43:50.254 appiOS[4854:732084] [PLLogging] ***** Error: logging directory does not exist

/var/mobile/Library/Logs/CrashReporter/DiagnosticLogs/

Albums count is 0

我使用的 iPad 上至少有 100 张图片。知道我做错了什么吗?

更新:

使用

_userAlbums = PHAsset.fetchAssetsWithOptions(nil)

作品

【问题讨论】:

fetchTopLevelUserCollectionsWithOptions 不是 PHCollectionList 方法。它是一种 PHCollection 方法。所以你已经在和错误的班级说话了。 另外,您的应用程序似乎因其他原因而崩溃。如果我是你,我会先研究为什么会在继续之前。 它实际上并没有崩溃,它只是在我尝试打印 PHCollection 对象时显示该日志 但你必须问问自己为什么会这样。当我在我的机器上运行您的代码时,我没有收到该消息。所以真的,我认为你应该停下来担心一下。可能 Xcode 没有正确安装。 我下载了一个示例项目,当我打印出该对象时,它也显示了日志错误。所以你也许我确实需要重新安装 【参考方案1】:

我使用的 iPad 上至少有 100 张图片。知道我做错了什么吗?

你没有做错任何事。不过,你的期望似乎有点不合时宜。 “至少有 100 张图像”这一说法似乎表明了一种更深层次的误解,因为毕竟PHCollectionList.fetchTopLevelUserCollectionsWithOptions 与图像无关。它与,呃,***用户集合有关。显然你的设备没有这些。

但现在请转到 iPad 上的“照片”应用并制作一些相册。 那些是***用户收藏!然后再次运行您的应用程序。假设您已被授予访问照片库的权限,现在您的日志记录将导致一个大于 0 的数字。

【讨论】:

以上是关于为啥 PHAssetCollection 计数为 0?的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHFetchOptions.predicate 从 PHAssetCollection 获取 PHAsset 的问题

创建相册的过滤 PHAssetCollection 失败

删除 PHAssetCollection (Swift)

如何从 PHAssetCollection 中删除图像?

何时使用 PHAsset、PHCollection、PHAssetCollection 和 PHCollectionList

将 UIImage 保存到 PHAssetCollection