我有一个应用程序,其中包含自定义图像选择器,使用ALAssetLibrary创建相册选择器和图像选择器。我们实现了自定义选择器,以便我们的客户可以选择多个图像。这个图片选择器在iOS 7下表现很好,显示带有所有用户照片的“相机胶卷”相册。但是,在iOS 8下运行相同的应用程序时,苹果似乎从相册视图中删除了“相机胶卷”相册,只显示“最近的照片”。据我所见,在iOS 8中访问所有照片的唯一方法是通过Collection视图(在照片应用程序或新内置选择器中)。不幸的是,我现在不能使用Photokit,因为我仍然需要支持我的iOS 6& 7用户。是否有人知道在运行编译在Xcode 5中的iOS 7应用程序时,如何获取所有资源并使用ALAssetLibrary创建自定义相机胶卷相册的方法?
更新
好吧,正如我在上面的原始帖子中所述,最初我无法使用新的照片框架(PhotoKit)。但是,我们最近将版本迁移到了Xcode 6,我现在可以使用照片框架来创建所有照片的组(请查看WWDC ExampleappusingPhotosframework示例代码以了解如何执行此操作)。
然而,尽管所有人都说PhotoKit很强大,但它缺少一些关键的过滤功能。实际上,使用PHFetchResult的谓词无法轻松地过滤原始"PhotoStream"中的照片。您只能使用公共属性。幸运的是,我通过使用PHAsset描述找出了如何进行过滤。在描述中列出的assetSource键等于2,如果照片在用户的照片流中,则可以过滤掉它们。因此,我对结果进行快速枚举,并将所有不在PhotoStream中的资产移动到一个数组中,使用asset.description属性上的简单stringInRange过滤器(查找“assetSource = 2”)。这可能不是最佳解决方案,但它目前可用,这样用户就不会看到来自本地库和照片流的重复照片。至少我可以呈现所有客户的照片,并使我的多媒体选择器尽可能接近使用ALAssetLibrary的原始类。
如果有更好的解决方案,请告诉我。