Swift 3 获取照片图像的 PHImageFileURLKey

Posted

技术标签:

【中文标题】Swift 3 获取照片图像的 PHImageFileURLKey【英文标题】:Swift 3 Obtain PHImageFileURLKey for photos image 【发布时间】:2017-11-03 21:29:54 【问题描述】:

我有一个照片选择器,它为我提供了一个 PHAsset,我需要获取每张照片的本地 URL。到目前为止,我可以使用以下代码做到这一点:

var selectedPhotos =  [NSURL]()
    selectedPhotos.removeAll()
    let options = PHImageRequestOptions()
    options.version = .original
    options.deliveryMode = .highQualityFormat
    options.isNetworkAccessAllowed = true
    let imgManager = PHImageManager.default()
    for index in 0..<savedAssets.count
    
    let asset = savedAssets[index] as PHAsset
    imgManager.requestImage(
        for: asset,
        targetSize: CGSize(width : 1024, height : 768),
        contentMode: .aspectFill,
        options: options,
        resultHandler:  (image, info) in
            let photoUrl = info!["PHImageFileURLKey"] as! NSURL
selectedPhotos.append(photoUrl)

print("this is the correct Url", photoUrl, "this is an array of URLs", selectedPhotos)

    

        )
    

我发现您无法访问 var "photoUrl" 或 resultHandler 之外的数组。我在程序的其他部分需要这些 URL。如何在我的应用程序的其他部分使用这个数组?有一个更好的方法吗?

【问题讨论】:

【参考方案1】:

我想错了。如果我想在结果处理程序中使用变量 photoUrl,我可以将它传递给一个函数。

resultHandler:  (image, info) in
        let photoUrl = info!["PHImageFileURLKey"] as! NSURL
        saveUrlToArray(photo: photoUrl)
)

然后只需在其他地方创建一个接收 NSURL 的函数。

【讨论】:

以上是关于Swift 3 获取照片图像的 PHImageFileURLKey的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swift 4 中从图像选择器获取照片本地 url

如何在 Swift 3/4 中使用相机获取位置?

如何从照片库中获取图像?

如何在 Swift 3 中保存带有顶部图像的相机照片

在swift中从本地获取图像

swift 3中的按钮背景图像