arrays - Swift 3 获取照片图像的 PHImageFileURLKey

标签 arrays swift completionhandler

我有一个照片选择器,它为我提供了 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 的函数。

关于arrays - Swift 3 获取照片图像的 PHImageFileURLKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47104661/

相关文章:

javascript - 如果条件只能满足一次,如何停止数组方法?

c - Arduino 字符串、字符和指针等

uitableview - 滚动到表格 View 的最后一行只会滚动一半

解析查询后 Swift 数组为空 - 完成处理程序?

swift - 为调用异步方法的异步调度队列实现完成处理程序

swift - 使用带有完成处理程序的函数时变量未初始化

javascript - 如何在 Javascript 中获取表单文本字段数组的长度

c - 如何将字符串转换为int并将结果放入数组

swift - WKWebView CALayer 到图像导出空白图像

ios - 如何将自定义操作添加到 iOS 中的文本选择编辑菜单?