我有一个照片选择器,它为我提供了PHAsset,我需要获取每张照片的本地网址。到目前为止,我可以使用以下代码执行此操作:
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。如何在我的应用程序的其他部分使用此数组?有一个更好的方法吗?
答案 0 :(得分:0)
我正在考虑这个错误的方式。如果我想在结果处理程序中使用变量photoUrl,我可以将它传递给函数。
resultHandler: { (image, info) in
let photoUrl = info!["PHImageFileURLKey"] as! NSURL
saveUrlToArray(photo: photoUrl)
})
然后在其他地方创建一个接受NSURL的函数。