正如问题所说,当资源目录下有多个具有给定名称的文件时,imageNamed 如何工作?
有没有办法区分两个具有相同名称(但路径不同)的不同文件?
谢谢
任何 Xcode 包中的文件夹都是“组”。也就是说,它们不是实际的目录。这些组中的文件仍然位于包的根目录中。
因此,在应用程序包中拥有两个(或更多)同名文件是不可能的。
见:http ://majicjungle.com/blog/?p=123
组的问题:
目录结构在复制到 iphone 应用程序时会丢失,因此在您的应用程序包中只是基本目录中所有资源的大列表。因此,重复的文件名成为一个问题。如果磁盘上目录结构中的任何文件包含相同的文件名,则构建过程会默默地搞砸一切。它似乎是“先入为主”,只有一个资源进入了应用程序包。因此,如果您有一堆不同级别的包,每个包都包含不同的“Terrain.png”文件,那就不好了。
如果您通过创建文件夹引用来维护您的目录结构,这将消除重复文件名的问题。但是,检索文件是个问题。
你可以做的是使用 NSBundle 类:
[[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@"path/to/file.jpg"]