我在项目中添加了一系列文件夹(使用“添加现有文件”选项)。这导致文件夹内容在Xcode中显示为蓝色文件夹。
以下作品:
NSString *imageName = [NSString stringWithFormat:@"/File-03/images/image-%02d.jpg", imageIndex];
return [UIImage imageNamed:imageName];
但是,我想切换到使用imageWithContentsOfFile
,因此不会缓存图像。
以下代码为图片返回nil
:
return [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"/File-03/images/image-%02d.jpg", imageIndex]];
我也尝试使用捆绑包访问imageWithContentsOfFile
,不去。
我在这里缺少什么?
答案 0 :(得分:6)
要在iPhone上访问和存储文件,我建议您阅读this。
Erica Sadun还撰写了一篇关于在应用包中访问文件的好shorty。
请注意,如何在Xcode中组织文件并不会显示它们最终会如何在应用包中结束。最好的方法是在Finder中选择应用包并按住CTRL键并选择显示包内容。
答案 1 :(得分:4)
好的,我在代码中找到了一种方法来获得我需要的东西:
NSString *dir = [NSString stringWithFormat:@"File-03/images", imageIndex];
NSString *file = [NSString stringWithFormat:@"image-%02d", imageIndex];
NSString *path = [[NSBundle mainBundle] pathForResource:file ofType:@"jpg" inDirectory:dir];
return = [UIImage imageWithContentsOfFile:path];
诀窍是在捆绑调用中 inDirectory 。
答案 2 :(得分:1)
你的imageWithContentsOfFile代码的问题在于你假设/
是捆绑的根,当它是FS的根时!
因此,pathForResource:ofType:inDirectory:
可能是获取所需路径的最简单方法。
否则,您可以获取捆绑包的根,并将其作为路径的前缀。