无法从iPhone / iPhone模拟器中的“Documents”文件夹加载图像

时间:2014-10-09 06:19:12

标签: ios objective-c file

我有一个部分应该将图像保存到手机的“Documents”文件夹中然后访问它。它节省了很多,但加载方法并没有真正起作用。这是我的.m代码:

- (UIImage*)loadImage
    {
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                             NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *path = [documentsDirectory stringByAppendingPathComponent:
                          @"photo.png" ];
        UIImage *image = [UIImage imageWithContentsOfFile:path];
        return image;
        studentImage = [[UIImageView alloc] initWithImage: image]; //UIImageView property
    }

- (UIImage*)loadBarcode
    {
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString* path = [documentsDirectory stringByAppendingPathComponent:
                          @"barcode.png" ];
        NSLog(@"%@", path);
        UIImage *image = [UIImage imageWithContentsOfFile:path];
        return image;
        barcode = [[UIImageView alloc] initWithImage: image]; // UIImageView property 
    }

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self loadBarcode];
    [self loadImage];

}

文件肯定可以访问,文件路径是正确的。但是UIImageViews我试图将它们分配给空白。我的选择已经用完了。你们有什么建议吗?

2 个答案:

答案 0 :(得分:0)

loadImage方法中,问题在于:

return image;
studentImage = [[UIImageView alloc] initWithImage: image];

您首先使用传输控件的return语句,并且永远不会将其分配给UIImageView控件。

应该是这样的:

studentImage = [[UIImageView alloc] initWithImage: image];
return image;

如果studentImage通过IB DON'T re-allocate it连接,则还有一点。而是使用:

studentImage.image = image;

希望它有所帮助!

答案 1 :(得分:0)

现在问题已解决,我的属性名称存在问题,但感谢您帮我清理代码!