1

我正在尝试解决相当简单的问题一段时间,但没有成功。我正在将文件保存到设备上的 Documents 目录中,并稍后尝试使用图像视图加载它。我确认该文件确实存在。为什么我的图片不显示?

在此先感谢您的帮助。

这是我试图将图像加载到 ImageView 中的代码:

 -(void)loadFileFromDocumentFolder:(NSString *) filename
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,    NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *outputPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithString: filename] ];

    NSLog(@"outputPath: %@", outputPath);
    UIImage *theImage = [UIImage new];
    [UIImage imageWithContentsOfFile:outputPath];

    if (theImage)
    {
        display = [UIImageView new];
        display = [display initWithImage:theImage];

        [self.view addSubview:display];
    }
}
4

2 回答 2

3

你的代码有问题。

UIImage *theImage = [UIImage new];

在这一行中,您创建了一个新UIImage对象,但您什么也不做。

[UIImage imageWithContentsOfFile:outputPath]

此类方法将返回一个UIImage对象,其中包含从文件加载的图像。

你对UIImageView.

NSString *outputPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithString: filename] ];

此外,[NSString stringWithString: filename]您不需要创建一个不需要的额外字符串,因为filename它已经是一个字符串。

您的代码应该像这样工作:

 -(void)loadFileFromDocumentFolder:(NSString *) filename {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,    NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *outputPath = [documentsDirectory stringByAppendingPathComponent:filename ];

    NSLog(@"outputPath: %@", outputPath);
    UIImage *theImage = [UIImage imageWithContentsOfFile:outputPath];

    if (theImage) {
        display = [[UIImageView alloc] initWithImage:theImage];
        [self.view addSubview:display];
    }
}
于 2012-11-27T15:57:07.757 回答
0

更改代码:

UIImage *theImage = [UIImage imageWithContentsOfFile:outputPath];

if (theImage)
{
    display = [UIImageView alloc]  initWithImage:theImage];
}
于 2012-11-27T15:53:38.307 回答