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