-1

I am using below code to save and read saved clicked image file from document directory. Its working well for the first time but when i'm trying to read the saved image file for the second time, its showing me the image clicked during first time.

- (void)imagePickerController:(UIImagePickerController *)picker
    didFinishPickingImage:(UIImage *)image
              editingInfo:(NSDictionary *)editingInfo
{

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                         NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString* path = [documentsDirectory stringByAppendingPathComponent:
                      @"test.png" ];

    NSFileManager* fileManager=[NSFileManager defaultManager];
    if ([fileManager fileExistsAtPath:path]) {
        NSError* error;
        [fileManager removeItemAtPath:path error:&error];
    }
    NSData* data = UIImagePNGRepresentation(image);
    [data writeToFile:path atomically:YES];
    [self.viewController dismissViewControllerAnimated:YES completion:nil];
}

Any idea why every time its returning me image clicked for the first time.

rmaddy
  • 314,917
  • 42
  • 532
  • 579
Varun Mehta
  • 1,733
  • 3
  • 18
  • 39

1 Answers1

1

didFinishPickingImage: is deprecated since iOS3.

This should work:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];

    if (!image) {

        image = [info objectForKey:UIImagePickerControllerOriginalImage];
    }

    if (image) {

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                         NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString* path = [documentsDirectory stringByAppendingPathComponent:@"test.png" ];

        NSData* data = UIImagePNGRepresentation(image);
        [data writeToFile:path atomically:YES];
        [self.viewController dismissViewControllerAnimated:YES completion:nil];
    }

    [self dismissViewControllerAnimated:YES completion:nil];
}

Please check the documentation.

Rok Jarc
  • 18,765
  • 9
  • 69
  • 124