首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ios 8,如何使用ALAssetLibrary获取所有照片以替换丢失的相机卷相册

ios 8,如何使用ALAssetLibrary获取所有照片以替换丢失的相机卷相册
EN

Stack Overflow用户
提问于 2014-09-10 17:45:27
回答 2查看 4.1K关注 0票数 13

我有一个应用程序,它有一个定制的图像选择器,它使用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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-26 10:08:04

好的,看起来它只是一个bug,iOS 8.0.2修复了它(至少对我来说,因为我现在可以在图像选择器中看到所有的照片)。

此版本包含改进和错误修复,包括: ..。修复了一个阻止一些应用程序从照片库访问照片的问题。..。

票数 0
EN

Stack Overflow用户

发布于 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上修复的。见下面我的另一个答案。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25771814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档