Ios 如何从gallery中获取多个选定图像的路径?

Ios 如何从gallery中获取多个选定图像的路径?,ios,arrays,swift,Ios,Arrays,Swift,我正在使用第三方库BSImagePicker从gallery中选择多个图像。我想获得阵列中这些选定图像的路径,并想在新的UIViewController中显示所有选定图像。我尝试了很多东西,但没有成功。请查看他们github存储库中的示例 我在他们的github上找到了一个片段: bs_presentImagePickerController(vc, animated: true, select: { (asset: PHAsset) -> Void in prin

我正在使用第三方库BSImagePicker从gallery中选择多个图像。我想获得阵列中这些选定图像的路径,并想在新的UIViewController中显示所有选定图像。我尝试了很多东西,但没有成功。

请查看他们github存储库中的示例
我在他们的github上找到了一个片段:

bs_presentImagePickerController(vc, animated: true,
    select: { (asset: PHAsset) -> Void in
        print("Selected: \(asset)")
    }, deselect: { (asset: PHAsset) -> Void in
        print("Deselected: \(asset)")
    }, cancel: { (assets: [PHAsset]) -> Void in
        print("Cancel: \(assets)")
    }, finish: { (assets: [PHAsset]) -> Void in
        print("Finish: \(assets)")
    }, completion: nil)

关于github的文档:

您确实会获得资产的选择事件

let vc = BSImagePickerViewController()

bs_presentImagePickerController(vc, animated: true,
    select: { (asset: PHAsset) -> Void in
      // User selected an asset.
      // Do something with it, start upload perhaps?
    }, deselect: { (asset: PHAsset) -> Void in
      // User deselected an assets.
      // Do something, cancel upload?
    }, cancel: { (assets: [PHAsset]) -> Void in
      // User cancelled. And this where the assets currently selected.
    }, finish: { (assets: [PHAsset]) -> Void in
      // User finished with these assets
}, completion: nil)
非常重要的一点是要理解,照片库现在不再像以前使用ALAssetLibrary那样返回图像的URL。 现在您将有一个对PHAsset项的引用。此图像可能包含多个图像(例如,实况照片视频和相关预览图像)

因此,您可以将所有相位集存储在一个数组中,甚至可以访问已经存在的图像并存储图像。(我建议坚持使用PHAsset方法,因为图像可能会炸毁您的内部ram)

如果要显示图像,请在延迟加载方法中使用:

let options = PHImageRequestOptions()
options.deliveryMode = .HighQualityFormat
options.synchronous = true // Set it to false for async callback

let imageManager = PHCachingImageManager()
imageManager.requestImageForAsset(<!#assetfromaboce#!>,
                                  targetSize: CGSizeMake(CGFloat(100), CGFloat(100)),
                                  contentMode: .AspectFill,
                                  options: options,
                                  resultHandler: { (resultThumbnail : UIImage?, info : [NSObject : AnyObject]?) in

                                                   // Assign your thumbnail which is the *resultThumbnail*
                                                  }
let options=PHImageRequestOptions()
options.deliveryMode=.HighQualityFormat
options.synchronous=true//对于异步回调,将其设置为false
让imageManager=PHCachingImageManager()
imageManager.requestImageForAsset(,
目标尺寸:CGSizeMake(CGFloat(100),CGFloat(100)),
contentMode:。AspectFill,
选项:选项,
resultHandler:{(结果缩略图:UIImage?,信息:[NSObject:AnyObject]?)位于
//指定您的缩略图,它是*resultThumbnail*
}

如果我没有错,这只返回一个PHAsset?OP可以使用PHAsset的LocalIdentifier属性,但我认为要获取所有选定图像的LocalIdentifier,他必须在select的完成块中记录它们。就像将标识符字符串附加到nsmutablearrayI中一样,我已经尝试过这一点,这并没有给出路径f或选定的图像。我想复制所有选定的图像并在新的UIViewController上显示。@NSNoob什么是OP?我将如何获取选定图像的URL路径?这是我的主要问题?您就是OP。理论上,每次选择图像时,都会调用select的完成块,并为您提供选定的相集和打印“选定:资产等"。您可以使用该属性跟踪选择的图像,并以任何方式使用它们。只要您有LocalIdentifier,您不需要URL路径,您就可以获取具有这些标识符的相集,而无需存储相集。您可以只需一个字符串,即相集的LocalIdentifier,然后获取资产有了这个字符串。内存效率更高。另请参见:是的,只要有办法从中访问相集,因为已经提供了相集,我认为这对他来说更容易;)您好,欢迎使用StackOverflow。请花些时间阅读帮助页面,特别是命名和的部分。更重要的是,请阅读。您可能还想了解。也请展示你尝试过的东西,以及你犯过的错误。@RobLang谢谢你的建议,我会在将来记住所有这些。