1. 程式人生 > 實用技巧 >iOS 判斷PHAsset 是不是允許從icould下載圖片

iOS 判斷PHAsset 是不是允許從icould下載圖片

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;
}