0

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

每当我尝试根据存储在数据库中的 URI 加载图像时,结果都会返回“nil”。

存储的 URI 如下所示:

/Users/myname/Library/Application Support/iPhone Simulator/6.0/Applications/78325CF9-73B0-4D0D-B136-FD8FF8D837C1/Documents/WC_45FEAF25-AC0C-4E91-A5E2-AA48215F1E48-3147-000005C6C9E65B42.jpg

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

/Users/myname/Library/Application\ Support/iPhone\ Simulator/6.0/Applications/78325CF9-73B0-4D0D-B136-FD8FF8D837C1/Documents/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
}

问题与反斜杠有关吗?很感谢任何形式的帮助!

真挚地,

佐利

4

1 回答 1

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;
}
于 2012-11-27T14:11:55.657 回答