gpt4 book ai didi

arrays - 检查相匹配的 url

转载 作者:行者123 更新时间:2023-11-28 05:59:02 25 4
gpt4 key购买 nike

我有一个用户从照片库中选择的图像的 url 数组。有没有一种快速的方法可以从照片库中获取这些 Assets (它们永远不会超过 5 张)而无需遍历所有用户的照片(在我的测试中这真的很慢)。

这是我现在使用的代码:

func loadCollectionView() {

arrImageViews.removeAll()

let options = PHFetchOptions()
//options.predicate = NSPredicate(format: "favorite == YES")
options.sortDescriptors = [
NSSortDescriptor(key: "creationDate", ascending: true)
]

let results = PHAsset.fetchAssets(with: .image, options: options)
var assets: [PHAsset] = []
results.enumerateObjects { (object, _, _) in
if let asset = object as? PHAsset {
assets.append(asset)
}
}

let manager = PHImageManager.default()


for thisAsset in assets {

thisAsset.getPHAssetURL(completionHandler: {(assetURL) in
if let strAssetURL = assetURL?.absoluteString {
if self.arrImagePaths.contains(strAssetURL) {

manager.requestImage(for: thisAsset, targetSize: CGSize(width: 80.0, height: 80.0), contentMode: .aspectFit, options: nil, resultHandler: {(thisImage, _) in
self.arrImageViews.append(UIImageView(image: thisImage))
self.cImages.reloadData()
})

}
}

})

}



}

getPHAssetURL 是一个从 Assets 中提取 url 的扩展。

所以我正在寻找的是 assetURL?.absoluteString 和我的数组中的字符串之间的匹配项。

最佳答案

检查了 docs ,我想如果你只想获取单个选定的 PHAsset 的信息,你可以试试这个:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
guard let asset = info[UIImagePickerControllerPHAsset] as? PHAsset else { return }
let localId = asset.localIdentifier
//Save this variable in your model.
}

如果您在 Collection View 中实现了多张照片选择,则必须查看他们的文档以了解如何获取所选媒体的 PHAssets。但这应该很容易。

然后用你的 var localIds: [String] 你可以试试这个:

let options = PHFetchOptions()
options.sortDescriptors = [
NSSortDescriptor(key: "creationDate", ascending: true)
]
let results = PHAsset.fetchAssets(withLocalIdentifiers: localIds, options: options)

请注意,您可以根据关键字 here 在提取请求中使用谓词执行进一步过滤.

关于arrays - 检查相匹配的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50414216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com