2009-05-27 58 views
3

我已经加入了一系列的文件夹到我的项目(使用添加现有的文件选项)。这导致文件夹内容在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

缺少什么我在这里?

回答

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

6

访问和存储的文件在iPhone上我建议你阅读this

埃里卡丧盾还写了一个漂亮的shorty有关的应用程序包内访问文件。

注意,文件如何在Xcode中被组织并不表明他们将如何在应用程序中捆绑告终。最好的方法是在Finder中选择应用程序包,然后按住CTRL并单击并选择显示包内容

+1

如果我通过显示包内容将我的内容添加到包中,会发生什么情况? – 2009-09-14 21:10:41

+0

认为会破坏密码,它不会在设备上运行 – epatel 2009-09-14 21:46:47

1

与imageWithContentsOfFile代码的问题是,你假设/是捆绑的根,当它是FS的根!

所以,pathForResource:ofType:inDirectory:可能是得到你需要的路径最简单的方法。

否则,你可以得到包的根和前缀,为你的路。