ios 一键批量保存图片到本地相册

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios 一键批量保存图片到本地相册相关的知识,希望对你有一定的参考价值。

参考技术A -( void )saveAction

//这里我先模拟了一个图片数组

self .tempImgArr = @[@"http://39.98.122.82/upload/home/c11.jpg",@"http://pic.bizhi360.com/bbpic/70/370.jpg",@"http://pic.bizhi360.com/bbpic/86/6386.jpg",@"http://pic.bizhi360.com/bbpic/69/6569.jpg"].mutableCopy;

    self .imgArr = [NSMutableArray array];

    for ( int i =0; i < self .tempImgArr.count; i++)

        [ self .imgArr  addObject: self .tempImgArr[i]];

   

//循环将图片加入一个数组里

    PHAuthorizationStatus status = [phphotoLibrary authorizationStatus];

        // 2.判断用户的授权状态

        if (status == PHAuthorizationStatusNotDetermined)

            // 如果状态是不确定的话,block中的内容会等到授权完成再调用

            [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status)

                // 授权完成就会调用

                if (status ==PHAuthorizationStatusAuthorized)

                //调用存储图片的方法

                    [ self CWWSavePhotos];

               

            ];

            //如果允许访问

        else if (status == PHAuthorizationStatusAuthorized)

            //调用存储图片的方法

            [ self CWWSavePhotos];

            //如果权限是拒绝

        else

            //弹出一个页面提示用户去打开授权

//            [MBProgressHUD showInWindowMessage:@"进入设置打开允许访问相册开关"];

       

- ( void )CWWSavePhotos

    if ( self .imgArr.count>0)

        [ self  saveimage:[ self .imgArrobjectAtIndex:0]];

   



#pragma mark - 保存图片的方法

- ( void )saveimage:(NSString*)imageUrl

    NSURL*imgUrl = [NSURLURLWithString:imageUrl];

    [[SDWebImageDownloadersharedDownloader]downloadImageWithURL:imgUrlcompleted:^(UIImage* _Nullable image,NSData* _Nullable data,NSError* _Nullable error, BOOL finished)

        if (image)

            UIImageWriteToSavedPhotosAlbum(image, self , @selector (image:didFinishSavingWithError:contextInfo:), nil );

            //清除sd缓存,防止图片被sdwebimage缓存

            [[SDImageCache sharedImageCache] clearDiskOnCompletion: nil ];

            [[SDImageCache sharedImageCache] clearMemory];

       

    ];



#pragma mark -- <保存到相册>

-( void )image:(UIImage*)imagedidFinishSavingWithError:(NSError*)errorcontextInfo:( void *)contextInfo

    if (error)

        [ self alertView:@"保存图片失败"];

    else

        [ self .imgArr removeObjectAtIndex:0];

        if ( self .imgArr.count==0)

          [ self alertView:@"图片已保存至您的相册"];

       

   

    [ self CWWSavePhotos];

iOS开发小技巧--实现将图片保存到本地相册

一.报错的代码

  • 错误 -- out of bounds 超出界限的意思

    *** Terminating app due to uncaught exception \'NSInvalidArgumentException\', reason: \'-[NSInvocation setArgument:atIndex:]: index (2) out of bounds [-1, 1]\'

  • 错误的代码

 

  • 苹果提供的建议方法
  • 正确的代码

以上是关于ios 一键批量保存图片到本地相册的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发-iOS调用相机调用相册将图片保存到本地相册

iOS开发中,获取图片之后保存或下载到本地相册中

iOS开发小技巧--实现将图片保存到本地相册

iOS开发中,如何将图片保存本地相册中

苹果手机怎么把微信里面的图片保存到相册

【微信小程序】保存图片到本地相册