关于IOS某图片添加控件,图片从相册或拍照保存后,再次进入时点击放大图无法显示的问题...

某图片添加控件:

https://github.com/XZTLLQ/LQPhotoPickerDemo

问题:

标题已说明

代码块:

NSArray *alAssetUrl =(NSMutableArray *)[HiddenRecordDataService getLocalImageSystemFilePath:_hiddenDangerInfoLocalModel.HiddenDangerInfoLocalId];
    NSMutableArray *localASSetArray = [NSMutableArray arrayWithCapacity:0];
    for (NSURL *url in alAssetUrl) {
        NSLog(@"url:%@", url);
        ALAssetsLibrary* library = [[ALAssetsLibrary alloc]init];
        // library fetch
            [library assetForURL:url resultBlock:^(ALAsset *asset) {
                if (asset) {
                    [localASSetArray addObject:asset];
                } else {
                    // On iOS 8.1 [library assetForUrl] Photo Streams always returns nil. Try to obtain it in an alternative way
                }
            } failureBlock:^(NSError *error) {
                iToast *itoast = [iToast makeText:@"获取图片失败"];
                [itoast show];
            }];
    }

问题是由于标红代码导致,这里的ALAssetsLibrary对象需要用单例

代码如下:

 

NSArray *alAssetUrl =(NSMutableArray *)[HiddenRecordDataService getLocalImageSystemFilePath:_hiddenDangerInfoLocalModel.HiddenDangerInfoLocalId];
    
    NSMutableArray *localASSetArray = [NSMutableArray arrayWithCapacity:0];
    
    for (NSURL *url in alAssetUrl) {
        NSLog(@"url:%@", url);
        //ALAssetsLibrary* library = [[ALAssetsLibrary alloc]init];
        ALAssetsLibrary* library = [HiddenRecordViewController defaultAssetsLibrary];
//        library fetch
            [library assetForURL:url resultBlock:^(ALAsset *asset) {
                if (asset) {
                    [localASSetArray addObject:asset];
                } else {
                    // On iOS 8.1 [library assetForUrl] Photo Streams always returns nil. Try to obtain it in an alternative way
                }
                
            } failureBlock:^(NSError *error) {
                iToast *itoast = [iToast makeText:@"获取图片失败"];
                [itoast show];
            }];
        
    }
defaultAssetsLibrary代码:
+ (ALAssetsLibrary *)defaultAssetsLibrary {
    static dispatch_once_t pred = 0;
    static ALAssetsLibrary *library = nil;
    dispatch_once(&pred, ^{
        library = [[ALAssetsLibrary alloc] init];
    });
    return library;
}

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值