UIImageWriteToSavedPhotosAlbum判断是否保存成功

 

 

UIImageWriteToSavedPhotosAlbum是保存图片到相册的的函数,在iOS6以前用这个函数十有八九是成功的(因为遇到空间不足保存失败的机会不是很大)。但是iOS6以后,当应用试图保存图片到相册的时候,会弹出提示询问用户是否允许访问相册,如果这个时候用户选择了否的话,就会保存失败啦,所以这个时候要判断一下。
因为以前用这个函数经常是保存成功的,以至于认为应该不能判断是否保存成功,今天再把这个函数拉出来细看竟然支持回调:

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

解释下:
image
要保存到用户设备中的图片
completionTarget
当保存完成后,回调方法所在的对象
completionSelector
当保存完成后,所调用的回调方法。 形式如下:

– (void)image:(UIImage *)image
  didFinishSavingWithError:(NSError *)error
  contextInfo:(void *)contextInfo{
  if (error != NULL){
    //失败
  }
  else{
    //成功
  }
}

contextInfo
可选的参数,保存了一个指向context数据的指针,它将传递给回调方法。
然后像下面这样写就可以判断是否保存成功啦:

  // 要保存的图片
  UIImage *img = [UIImage imageNamed:@”ImageName.png”];  
  
  // 保存图片到相册中
  UIImageWriteToSavedPhotosAlbum(img, 
                                 self, 
                                 @selector(image:didFinishSavingWithError:contextInfo:), 
                                 nil);


that’s all

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s