NSFileManager:无法正常工作

时间:2013-12-10 13:06:33

标签: ios nsfilemanager

我使用下面的代码来保存和读取文档目录中保存的点击图像文件。它第一次运行良好,但是当我第二次尝试读取保存的图像文件时,它向我展示了第一次点击的图像。

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

任何想法为什么每次回复我的图像都是第一次点击。

1 个答案:

答案 0 :(得分:1)

自iOS3以来,

didFinishPickingImage:已被弃用。

这应该有效:

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

请查看documentation

相关问题