无法从iPhone文档目录位置中的已保存文件重新加载UIImage

时间:2014-03-16 21:28:31

标签: ios iphone objective-c uiimage

我正在创建一个将文件保存到iPhone文档目录的应用程序,然后当重新加载View Controller时,它将从同一位置获取并显示它。但它并没有取出并显示它。

我使用以下方法保存图像:

void UIImageWriteToFile(UIImage *image, NSString *fileName)
{
    NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentDirectoryPath = dirPaths[0];
    NSString *filePath = [documentDirectoryPath stringByAppendingPathComponent:fileName];

    NSData *imageData = UIImagePNGRepresentation(image);
    [imageData writeToFile:filePath atomically:YES];
}

我正在尝试使用以下代码调用我从viewDidLoad方法保存的图像:

    NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentDirectoryPath = dirPaths[0];

    NSString *fileName = [NSString stringWithFormat:@"/%@.png", self.fullname.text];

    NSString *filePath = [documentDirectoryPath stringByAppendingString:fileName];
    [self.imageView setImage:[UIImage imageNamed: filePath]];

但是,它没有显示我的图像。任何人都可以帮助我,告诉我哪里出错了。我是iOS开发的新手。

3 个答案:

答案 0 :(得分:3)

替换此行:[self.imageView setImage:[UIImage imageNamed: filePath]];

这一个:

UIImage *image = [[UIImage alloc] initWithContentsOfFile:filePath];
[self.imageView setImage:image];

答案 1 :(得分:1)

您可以将[UIImage imageNamed:]与Documents文件夹中的图像一起使用,并享受底层缓存机制的好处,但文件路径略有不同。

使用以下内容:

 NSString *fileName = [NSString stringWithFormat:@"../Documents/%@.png", self.fullname.text];
 UIImage *image = [UIImage imageNamed:fileName];

答案 2 :(得分:0)

您需要使用方法

- (UIImage*)initWithContentsOfFile:(NSString*)path

从Documents或Cache目录初始化图像。

imageNamed:用于从应用程序包中获取图像。