1.大部分都是一下判断, 我自己试验后,完全不准
[[PHImageManager defaultManager] requestImageForAsset:selectedAsset targetSize:targetSize contentMode:contentMode options:options resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) { if ( [info objectForKey:PHImageResultIsInCloudKey]){ ///这是icloud } }];
2.推荐使用判断
/// 是否需要网络下载 /// @param asset 下载的图片 + (BOOL)isNetworkAccessAllowed:(PHAsset *)asset{ // asset是一个您想要为其获取信息的PHAsset对象 NSArray *resourceArray = [PHAssetResource assetResourcesForAsset:asset]; if (resourceArray.count >= 1){ ///本地是否可用:NO 代表icould 图片 // If this returns NO, then the asset is in iCloud and not saved locally yet return ![[resourceArray.firstObject valueForKey:@"locallyAvailable"] boolValue]; } NSLog(@"asset 资源信息 resourceArray = %@", resourceArray); if ([[resourceArray.firstObject valueForKey:@"locallyAvailable"] boolValue] == NO){ NSLog(@"图片 不在本地 isLocallayAvailable == NO"); }else{ NSLog(@"图片 在本地 isLocallayAvailable == YES"); } return NO; }