判读一个图片/视频是否在 iCloud 比较准确的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| - (PHImageRequestID)checkIsCloud:(PHAsset *)asset cachingImageManager:(PHCachingImageManager *)cachingImageManager { if (asset.mediaType == PHAssetMediaTypeVideo) { PHVideoRequestOptions *options = [PHVideoRequestOptions new]; options.deliveryMode = PHVideoRequestOptionsDeliveryModeMediumQualityFormat; return [cachingImageManager requestAVAssetForVideo:asset options:options resultHandler:^(AVAsset * _Nullable avAsset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) { if (asset != self.asset) return; dispatch_async(dispatch_get_main_queue(), ^{ if (info[@"PHImageFileSandboxExtensionTokenKey"]) { self.iCloudStatus = KICloudStatusNone; } else if ([info[PHImageResultIsInCloudKey] boolValue]) { self.iCloudStatus = KICloudStatusNormal; } else { self.iCloudStatus = KICloudStatusNone; } }); }]; } else { return [cachingImageManager requestImageDataForAsset:asset options:nil resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) { if (asset != self.asset) return; dispatch_async(dispatch_get_main_queue(), ^{ if (info[@"PHImageFileSandboxExtensionTokenKey"]) { self.iCloudStatus = KICloudStatusNone; } else if ([info[PHImageResultIsInCloudKey] boolValue]) { self.iCloudStatus = KICloudStatusNormal; } else { self.iCloudStatus = KICloudStatusNone; } }); }]; } }
|