2012-08-07 56 views
-1

我想要保存一个已被带到应用程序文档目录的图像,但由于某种原因,计数器总是在增加,但目录中没有图像。什么似乎是问题?图像不会保存到文档目录

非常感谢!

- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info 
{ 
    [picker dismissModalViewControllerAnimated:YES]; 
    self.imageViewRecipt.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 

    // 
    // Getting the current counter value 
    // 
    NSUserDefaults * prefs = [NSUserDefaults standardUserDefaults]; 

    int imageCounter; 
    imageCounter = [[prefs objectForKey:@"imageCounter"]intValue]; 

    // 
    // Obtaining saving path 
    // 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *imagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"image%i.png",imageCounter]]; 

    // 
    // Extracting image from the picker and saving it 
    // 
    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; 
    if ([mediaType isEqualToString:@"public.image"]) 
    { 
     UIImage *editedImage = [info objectForKey:UIImagePickerControllerEditedImage]; 
     NSData *webData = UIImagePNGRepresentation(editedImage); 
     [webData writeToFile:imagePath atomically:YES]; 

     // 
     // Saving the new counter into the plist 
     // 
     imageCounter++; 

     [prefs setInteger:imageCounter forKey:@"imageCounter"]; 
     [prefs synchronize]; 
    } 
} 
+0

非常感谢朋友。 – 2012-08-07 07:31:30

回答

0

OK,所以我固定它通过删除“mediaType的”,而如果statment以及与此替换:

- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info 
{ 
    [picker dismissModalViewControllerAnimated:YES]; 
    self.imageViewRecipt.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 

    // 
    // Getting the current counter value 
    // 
    NSUserDefaults * prefs = [NSUserDefaults standardUserDefaults]; 

    int imageCounter; 
    imageCounter = [[prefs objectForKey:@"imageCounter"]intValue]; 

    // 
    // Obtaining saving path 
    // 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *imagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"image%i.png",imageCounter]]; 

    // 
    // Extracting image from the picker and saving it 
    // 
    UIImage *editedImage = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 
    NSData *webData = UIImagePNGRepresentation(editedImage); 
    [webData writeToFile:imagePath atomically:YES]; 
    NSData *webData = UIImagePNGRepresentation(editedImage); 
    [webData writeToFile:imagePath atomically:YES]; 

    // 
    // Saving the new counter into the plist 
    // 
    imageCounter++; 

    [prefs setInteger:imageCounter forKey:@"imageCounter"]; 
    [prefs synchronize]; 
} 

,现在它的工作就好了。