如何把图片保存到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];
值得注意的是,在访问系统相册时,系统会询问用户是否允许访问,如果用户不允许,则不能访问相册,保存肯定是失败的!!!
像推送、通知、定位之类,都需要询问用户是否允许!!!