title: How to copy ALL photos from one photo album my app's document folder on iOS?
body: <p>I want to access and copy all the photos from one album in my iPhone photo album to my app's document folder AUTOMATICALLY WHEN THE APP STARTS. </p>
  
  <p>There are a lot of questions/answers on here on using the UIImagePicker. I know I can do it with the image picker and have the user select the photos but I would really like it if I could do it without the user selecting the photos. </p>
  
  <p>I have used the following question/answer to help with the code below: <a href="https://stackoverflow.com/questions/10200553/how-to-retrieve-the-most-recent-photo-from-camera-roll-on-ios?answertab=active#tab-top">How to retrieve the most recent photo from Camera Roll on iOS?</a></p>
  
  <p>I was able to successfully save the one image in my documents folder but cannot figure out how to save more than one at a time.</p>
  
  <pre><code>     ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init];
  [assetsLibrary enumerateGroupsWithTypes: ALAssetsGroupAlbum  //ALAssetsGroupAlbum before I CHANGED it
                               usingBlock:^(ALAssetsGroup *group, BOOL *stop)  { //
                                   if (nil != group) {
                                       // be sure to filter the group so you only get photos
                                       [group setAssetsFilter:[ALAssetsFilter allPhotos]];
  
                                       [group enumerateAssetsAtIndexes:[NSIndexSet indexSetWithIndex: group.numberOfAssets - 1 ]// -1
                                                              options:0
                                                           usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
  
  
                                                          if (nil != result)
                                                                {
                                                                  ALAssetRepresentation *repr = [result defaultRepresentation];
                                                                    // this is the most recent saved photo
                                                                    UIImage *img = [UIImage imageWithCGImage:[repr fullResolutionImage]];
                                                                    // we only need the first (most recent) photo -- stop the enumeration
                                                                    // *stop = YES;
  
                                                                    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
                                                                    NSString *documentsDirectory = [paths objectAtIndex:0];
  
                                                                    int num = 1;
                                                                    NSString* path = [documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat:@"%@-%d.png",@"boxOneImage", num]];
                                                                    num++;
  
                                                                    NSData* data = UIImagePNGRepresentation(img);
                                                                    [data writeToFile:path atomically: YES];
  
  
  
                                                                }
                                                            }];
                                   }
  
                                   *stop = NO;
                               } failureBlock:^(NSError *error) {
                                   NSLog(@"error: %@", error);
                               }]; 
  </code></pre>
  
  <p>UPDATE: I was able to figure it out and load images from just an album not the camera roll to my app documents folder using the following code:</p>
  
  <pre><code>    __block int num = 1;
  
  ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init];
  [assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:^(ALAssetsGroup *group, BOOL *stop)
  {
      if (nil != group)
      {
          [group setAssetsFilter:[ALAssetsFilter allPhotos]];
  
          [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop){
  
              if (nil != result)
              {
                  ALAssetRepresentation *repr = [result defaultRepresentation];
                  // this is the most recent saved photo
                  UIImage *img = [UIImage imageWithCGImage:[repr fullResolutionImage]];
  
                  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
                  NSString *documentsDirectory = [paths objectAtIndex:0];
  
  
                  NSString* path = [documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat:@"%@-%d.png",@"boxOneImage", num]];
                  num++;
  
                  NSData* data = UIImagePNGRepresentation(img);
                  [data writeToFile:path atomically: YES];
  
              }
          }];
      }
  
      *stop = NO;
  } failureBlock:^(NSError *error)
  {
      NSLog(@"error: %@", error);
  }];
  </code></pre>
  
  <p>If anyone has or knows a better way of doing this, then please share. I would love to see it and learn from it. Thanks!!!</p>