我有一个应用程序,它有一个定制的图像选择器,它使用ALAssetLibrary创建一个相册选择器和图像选择器。为了让客户选择多个图像,我们实现了一个自定义选择器。这个图像选择器在iOS 7下工作得很好,并显示了带有所有用户照片的“相机卷”相册。然而,当在iOS 8下运行相同的应用程序时,苹果似乎已经从相册视图中删除了“相机卷”相册,只显示了“最近的照片”。据我所见,在iOS 8中访问所有照片的唯一方法是通过集合视图(在photos应用程序或新内置的选择器中)。不幸的是,我现在不能使用Photokit,因为我仍然需要支持我的iOS 6&7用户。有人知道如何在ALAssetLibrary 8下运行iOS 7应用程序(用Xcode 5编译)来获取所有资产并创建一个自定义相机卷相册吗?
更新
嗯,正如我在上面最初的文章中所说的,我最初无法使用新的(PhotoKit)。但是,我们最近将构建转移到Xcode 6,现在我可以使用照片框架创建一组所有的照片(查看ExampleappusingPhotosframework示例代码了解如何做到这一点)。
然而,尽管每个人都说PhotoKit很强大,但它缺少一些关键的过滤功能。实际上,使用带有PhotoStream的谓词过滤原始“PHFetchResult”中的照片并不容易。你只能使用公共财产。幸运的是,我知道了如何使用PHAsset描述过滤它们。如果照片在用户的光流中,则描述中列出的assetSource键等于2。因此,我对结果使用了快速枚举,并使用PhotoStream属性上的一个简单的stringInRange过滤器(查找"assetSource=2")将所有资产移动到一个不在asset.description中的数组中。这可能不是最好的解决方案,但它现在起作用了,这样用户就不会从本地库和光流中看到他们照片的副本。至少,我可以展示所有客户的照片,并允许我的多媒体选择器与使用ALAssetLibrary的原始类的功能一样接近。
也就是说,如果有人使用谓词有更好的解决方案,请使用lmk。
发布于 2014-09-26 10:08:04
好的,看起来它只是一个bug,iOS 8.0.2修复了它(至少对我来说,因为我现在可以在图像选择器中看到所有的照片)。
此版本包含改进和错误修复,包括: ..。修复了一个阻止一些应用程序从照片库访问照片的问题。..。
发布于 2014-09-22 11:34:32
我也有同样的问题。无法找到适当的文档说明资产库无法再访问这些照片,但是iOS 8的发行说明说您可以使用PhotosFramework。不过还没测试过。
Photos.framework (Photos.framework)提供了新的app,用于处理照片和视频资产,包括由Photos应用程序管理的iCloud Photos资产。这个框架是资产库框架的一个更有能力的替代方案。
也许这意味着我们有让在iOS 8+上使用它?
更新:无法访问所有照片是iOS 8.0上的一个bug,并且它是在8.0.2上修复的。见下面我的另一个答案。
https://stackoverflow.com/questions/25771814
复制相似问题