1

我有一个应用程序向用户显示相册列表,以便他们可以选择其中的照片并将它们上传到服务器。这一切都很好而且很可靠,但是一位将他们的 Mac 和 iPhoto 图库升级到 Photos 的人报告说,当他们现在使用该应用程序时,他们 iPhone 和 iPad 上的一些相册在升级前这些相册工作时会显示“0 张照片” .

我只是列举了资产组(在此过程中进行错误检查)并UITableViewCell使用缩略图构建一个标题和照片数量。这已经工作了四年,我刚刚将代码升级到 Swift。在照片升级之前,没有关于旧 Obj C 代码或新 Swift 代码问题的报告。我在发行说明中找不到与此问题相关的任何内容。

如果您在 iPhone 上的照片应用中查看升级后的照片库,相册现在位于名为“iPhoto Albums”的文件夹中。那些是有随机问题的。

下面的代码从预制数组中提取组,将过滤器设置为仅照片并获取照片数量。

未列出提取缩略图和标题的代码,因为它始终有效且与问题无关。

此外,发生这种情况的专辑总是相同的。numberOfAssets()除了基于过滤器之外,Apple 文档没有说明任何内容。过滤器有效,并且已验证受影响的相册包含图像且不含视频。

任何关于为什么会发生这种情况的想法将不胜感激。

    let assetGroup = assetsGroup[indexPath.row] as! ALAssetsGroup
    assetGroup.setAssetsFilter(ALAssetsFilter.allPhotos())
    let photoCount = assetGroup.numberOfAssets()
4

1 回答 1

0

我的猜测,这只是一个猜测,是你的基于 ALAsset 的代码已经死了。

资产库框架已被 Photo Kit 取代 - 这是有原因的。Photo Kit 的重点是让您为非常不同的现实做好准备,照片基于云,手机上的照片应用程序和 Mac 上的照片应用程序以新的方式通过云进行协作。你应该早在 2014 年 6 月 Photo Kit 推出时就开始处理这个问题;现在 Mac 上的 Photos 应用程序已经成为现实,而这种现实已经触动了您的应用程序。

因此,我假设在您将处理照片库的整个资产库方法替换为基于 Photo Kit 的方法之前,您可能无法解决这个问题。当然我可能是错的,但我最好的建议至少是使用 Photo Kit 重写你的应用程序,看看它是否真的有帮助。

于 2015-05-19T00:29:39.220 回答