将图片保存在iPhone的相册中

Posted by Elton's Blog on November 16, 2009

有时候你的应用需要将应用中的图片保存到用户iPhone或者iTouch的相册中。 可以使用UIKit的这个类方法来完成。

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

image 要保存到用户设备中的图片

completionTarget 当保存完成后,回调方法所在的对象

completionSelector 当保存完成后,所调用的回调方法。 形式如下:

- (void) image: (UIImage *) image
    didFinishSavingWithError: (NSError *) error
    contextInfo: (void *) contextInfo;

contextInfo 可选的参数,保存了一个指向context数据的指针,它将传递给回调方法。

比如你可以这样来写一个存贮照片的方法:

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

回调方法看起来可能是这样:

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error 
             contextInfo:(void *)contextInfo
  {
    // Was there an error?
    if (error != NULL)
    {
      // Show error message...
 
    }
    else  // No errors
    {
      // Show message image successfully saved
    }
  }