iOS Core Data无法从存储的URI中打开图像

时间:2012-11-27 13:44:24

标签: ios core-data

在我的应用程序中,我将图像存储在我的文档文件夹中,并将其URI存储在数据库中。

每当我尝试根据存储在db中的URI加载图像时,我的结果就是“nil”。

存储的URI如下所示:

  

/ Users / myname / Library / Application Support / iPhone   模拟器/ 6.0 /应用/ 78325CF9-73B0-4D0D-B136-FD8FF8D837C1 /文档/ WC_45FEAF25-AC0C-4E91-A5E2-AA48215F1E48-3147-000005C6C9E65B42.jpg

当我从iTerm查看它时,我看到图像在那里,但在iTerm中,我必须进入如下目录:

  

/ Users / myname / Library / Application \ Support / iPhone \   模拟器/ 6.0 /应用/ 78325CF9-73B0-4D0D-B136-FD8FF8D837C1 /文档/ WC_45FEAF25-AC0C-4E91-A5E2-AA48215F1E48-3147-000005C6C9E65B42.jpg

注意空白之前的反斜杠

我正在尝试使用此功能获取图像:

-(UIImage *) getImageFromURL:(NSString *)fileURL {
    UIImage * result;

    NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]];
    result = [UIImage imageWithData:data];

    return result; //result is always nil
}

问题是与反斜杠有关吗? 非常感谢任何帮助!

此致

佐利

1 个答案:

答案 0 :(得分:1)

解决方案是不将uri存储在数据库中,只存储图像名称。 (但仍将图像存储在文档目录中) 然后使用以下功能可以检索图像:

- (UIImage*)loadImageWithName:(NSString*) name
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                         NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString* path = [documentsDirectory stringByAppendingPathComponent:
                      [NSString stringWithString: name] ];
    UIImage* image = [UIImage imageWithContentsOfFile:path];
    return image;
}