如何把圖片保存到iOS自帶的相冊(cè)中
把UIImage所代表的圖片保存到Photo Album中
想要實(shí)現(xiàn)上述功能可以使用UIKit框架下提供的一個(gè)方法
UIImageWriteToSavedPhotosAlbum(
UIImage * _Nonnull image,
id _Nullable completionTarget,
SEL _Nullable completionSelector,
void * _Nullable contextInfo
);
各參數(shù)說(shuō)明:
id是target對(duì)象算墨,sel是selector,即target對(duì)象上的方法名唯竹,contextInfo是任意指針模聋,會(huì)傳遞到selector定義的方法上秒裕。一般是當(dāng)完成后調(diào)用方法時(shí)使用俯萎,或者在完成時(shí)出錯(cuò)的處理火俄。
簡(jiǎn)單實(shí)現(xiàn)Demo:
//實(shí)現(xiàn)該方法
- (void)saveImageToPhotos:(UIImage*)savedImage
{
UIImageWriteToSavedPhotosAlbum(savedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
//因?yàn)樾枰涝摬僮鞯耐瓿汕闆r巢墅,即保存成功與否架谎,所以此處需要一個(gè)回調(diào)方法image:didFinishSavingWithError:contextInfo:
}
//回調(diào)方法
- (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類炸宵。
調(diào)用方法:
//調(diào)用方法
UIImage *savedImage = [UIImage imageNamed:@"111.png"];
[self saveImageToPhotos:savedImage];
值得注意的是,在訪問(wèn)系統(tǒng)相冊(cè)時(shí)谷扣,系統(tǒng)會(huì)詢問(wèn)用戶是否允許訪問(wèn)土全,如果用戶不允許,則不能訪問(wèn)相冊(cè)会涎,保存肯定是失敗的9住!末秃!
像推送概页、通知、定位之類练慕,都需要詢問(wèn)用戶是否允許6璩住!铃将!