将UIImageView上的图片保存到相册中

如何把图片保存到iOS自带的相册中
把UIImage所代表的图片保存到Photo Album中

想要实现上述功能可以使用UIKit框架下提供的一个方法

UIImageWriteToSavedPhotosAlbum(
                                   UIImage * _Nonnull image,
                                   id  _Nullable completionTarget,
                                   SEL  _Nullable completionSelector,
                                   void * _Nullable contextInfo
                                   );

各参数说明:
id是target对象,sel是selector,即target对象上的方法名,contextInfo是任意指针,会传递到selector定义的方法上。一般是当完成后调用方法时使用,或者在完成时出错的处理。

简单实现Demo:

//实现该方法
- (void)saveImageToPhotos:(UIImage*)savedImage
{
    UIImageWriteToSavedPhotosAlbum(savedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
//因为需要知道该操作的完成情况,即保存成功与否,所以此处需要一个回调方法image:didFinishSavingWithError:contextInfo:
}
//回调方法
- (void)image: (UIImage *) image didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo
{
    NSString *msg = nil ;
    if(error != NULL){
        msg = @"保存图片失败" ;
    }else{
        msg = @"保存图片成功" ;
    }
    
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:msg preferredStyle:UIAlertControllerStyleAlert];
    [self showViewController:alert sender:nil];
}
//注iOS9弃用了UIAlertView类。

调用方法:

//调用方法
UIImage *savedImage = [UIImage imageNamed:@"111.png"];
[self saveImageToPhotos:savedImage];

值得注意的是,在访问系统相册时,系统会询问用户是否允许访问,如果用户不允许,则不能访问相册,保存肯定是失败的!!!
像推送、通知、定位之类,都需要询问用户是否允许!!!

做一只骄傲的程序猿 .##

点我 , 点我

你可能感兴趣的:(将UIImageView上的图片保存到相册中)