iOS16系统根据PHAsset判断是否在云上

iOS16系统根据PHAsset判断是否在云上

-(BOOL)getIsInICloudWithAsset:(PHAsset *)asset
{
    if(asset && [asset isKindOfClass:PHAsset.class])
    {
        // 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;
    }
    return NO;
}

注意:iOS16下面的方法获取到的都是NO,并列相信的网上的方法,要看具体系统的。

-(BOOL)getIsInICloudWithAsset:(PHAsset *)asset
{
    __block BOOL isICloudAsset = NO;
    if(asset && [asset isKindOfClass:PHAsset.class])
    {
        PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
        options.resizeMode = PHImageRequestOptionsResizeModeFast;
        options.synchronous = true;
        [[PHImageManager defaultManager] requestImageForAsset:asset targetSize:CGSizeMake(80, 80) contentMode:PHImageContentModeAspectFill options:options resultHandler:^(UIImage *result, NSDictionary *info) {
            if ([[info objectForKey: PHImageResultIsInCloudKey] boolValue]) {
                isICloudAsset = YES;
            }}];
        
    }
    return isICloudAsset;
}

原因是:info根本没有对应的键值PHImageResultIsInCloudKey,所以获取到的都是NO。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值