捆绑和文件访问

时间:2009-05-27 16:47:39

标签: iphone xcode

我在项目中添加了一系列文件夹(使用“添加现有文件”选项)。这导致文件夹内容在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,不去。

我在这里缺少什么?

3 个答案:

答案 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:可能是获取所需路径的最简单方法。

否则,您可以获取捆绑包的根,并将其作为路径的前缀。