【问题标题】:image wont save into Documents Directory [closed]图像不会保存到文档目录中[关闭]
【发布时间】:2012-08-07 05:10:35
【问题描述】:

我想保存一张已拍摄到应用程序文档目录的图像,但由于某种原因,计数器总是在上升,但目录中没有图片。似乎是什么问题?

非常感谢!

- (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];
    }
}

【问题讨论】:

    标签: iphone objective-c ios xcode uiimagepickercontroller


    【解决方案1】:

    好的,所以我通过删除“mediaType”和 if 语句来修复它并将其替换为:

    - (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];
    }
    

    现在它工作得很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 2012-09-04
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      • 2013-07-29
      相关资源
      最近更新 更多