iOS Core Data无法从存储的URI中打开图像
在我的应用程序中,我将图像存储在我的文档文件夹中并将其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
注意空白之前的反斜杠
我正在尝试使用此function获取图像:
-(UIImage *) getImageFromURL:(NSString *)fileURL { UIImage * result; NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]]; result = [UIImage imageWithData:data]; return result; //result is always nil }
问题与反斜杠有关吗? 很感谢任何forms的帮助!
此致
佐利
解决方案是不将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; }