Swift 3 获取 PHImageFileURLKey 用于照片图像



我有一个照片选择器,它为我提供了一个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。 如何在应用的其他部分中使用此数组? 有没有更好的方法可以做到这一点?

我的想法

是错误的。 如果我想在结果处理程序中使用变量 photoUrl,我可以将其传递给函数。

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

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

最新更新