ios 根据获取的asset.localIdentifier来找到相册中相应的asset

本文介绍了在iOS应用中,如何利用asset的localIdentifier来找到相册中的对应图片,以便进行上传操作。在处理大量图片时,为避免内存问题,不直接存储图片,而是保存localIdentifier,通过它来获取PHAsset并请求图片数据进行上传。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ios 根据获取的asset.localIdentifier来找到相册中相应的asset:

应用场景:
如果有很多张图片(原图,内存很大)需要上传到服务器上,现在的需求是先将图片存在本地,再上传至服务器。那么把所有原图的nsdata存在本地是不现实的,会占用很大内存,所以就会想到存相册照片的路径,根据路径去访问照片从而上传。但是这种方法也是不现实,由于ios各种原因,不给你根据路径去访问相册相应照片(可能有方法,但是我没找到),所以就可以把asset的localIdentifier存在本地,根据localIdentifier去获取asset然后来完成上传,相当于用localIdentifier代替照片的url。

demo:
// 根据asset的localidentifier(唯一标识)来获取asset
PHFetchResult *result = [PHAsset fetchAssetsWithLocalIdentifiers:@[asset.localIdentifier] options:nil];
// 根据获取的results 来获取相应的asset(此时的asset是完整的)
[result enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
// asset = obj;
PHAsset *imageAsset = obj;
[[PHImageManager defaultManager] requestImageDataForAsset:imageAsset options:phImageRequestOptions resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
CGImageSourceRef imageSource = CGImageSourceC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值