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

stu*_*ine 13 camera-roll xcode5 alassetlibrary ios8

我有一个应用程序,它有一个自定义图像选择器,使用ALAssetLibrary创建一个相册选择器和图像选择器.我们已经实施了一个自定义选择器,以便我们的客户选择多个图像.此图像选择器在iOS 7下运行良好,并显示包含所有用户照片的"相机胶卷"相册.但是,在iOS 8下运行相同的应用程序时,似乎Apple已从"相册"视图中删除了"相机胶卷"相册,并且仅显示"最近的照片".从我所看到的,访问iOS 8中所有照片的唯一方法是通过Collection视图(在Photos应用程序或新的内置选择器中).不幸的是,我目前无法使用Photokit,因为我仍然需要支持我的iOS 6和7用户.有没有人知道在iOS 8(在Xcode 5中编译)运行iOS 7应用程序时使用ALAssetLibrary获取所有资产并创建自定义相机胶卷相册的方法?

UPDATE

好吧,正如我在上面的原始帖子中所述,我最初无法使用新的照片框架(PhotoKit).但是,我们最近将构建版本移至Xcode 6,现在我可以使用照片框架创建一组所有照片(请参阅WWDC ExampleappusingPhotosframework示例代码以了解如何执行此操作).

然而,就像每个人都说PhotoKit一样强大,它缺少一些关键的过滤功能.事实上,没有简单的方法可以使用带有PHFetchResult的谓词过滤原始"PhotoStream"中的照片.您只能使用公共场所.幸运的是,我想出了如何使用PHAsset描述过滤它们.如果照片位于用户的照片流中,则说明中列出的assetSource键等于2.因此,我在结果上使用快速枚举,并使用asset.description属性上的简单stringInRange过滤器将所有资源移动到不在PhotoStream中的数组(查找"assetSource = 2").它可能不是最好的解决方案,但它现在有效,因此用户不会看到本地图书馆和他们的照片流中的照片重复.至少我可以呈现所有客户的照片,并允许我的多媒体选择器与使用ALAssetLibrary的原始类一样接近.

无论如何,如果有人使用谓词有更好的解决方案,请lmk.

Ana*_*nas 0

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

此版本包含改进和错误修复,包括:

[...]修复了阻止某些应用程序访问照片库中照片的问题。[...]

  • @stulevine:您介意将此标记为已接受,以便人们知道 Photos.framework 不一定是解决方案吗?谢谢。 (2认同)