Objective c 文件名和Xcode sim与ios设备之间的奇怪问题

Objective c 文件名和Xcode sim与ios设备之间的奇怪问题,objective-c,ios,memory-management,Objective C,Ios,Memory Management,我花了一天时间试图弄明白为什么一些简单的代码没有从resources文件夹加载图像。为了好玩,我进入finder,将其中一个文件重命名为完全相同的名称,并加载了它。然后我做了其他的——只是简单地将它们重命名为相同的名称。我看了看,文件名前后没有任何奇怪的字符或空格。所以现在它们都很好地加载到模拟器中的一个数组中。但现在在我的设备上,它们没有加载到数组中,返回“nil”并抛出异常。我知道ios设备在sim不区分大小写的情况下是区分大小写的,但我检查了这一点,并且命名很好。我唯一能想到的是,我的图像

我花了一天时间试图弄明白为什么一些简单的代码没有从resources文件夹加载图像。为了好玩,我进入finder,将其中一个文件重命名为完全相同的名称,并加载了它。然后我做了其他的——只是简单地将它们重命名为相同的名称。我看了看,文件名前后没有任何奇怪的字符或空格。所以现在它们都很好地加载到模拟器中的一个数组中。但现在在我的设备上,它们没有加载到数组中,返回“nil”并抛出异常。我知道ios设备在sim不区分大小写的情况下是区分大小写的,但我检查了这一点,并且命名很好。我唯一能想到的是,我的图像是以视网膜命名的(@2x~iphone),而我的设备不是。但我有同样的图像命名为视网膜,这些图像很好


我正在使用imageWithContentsOfFile加载图像,并在尝试加载图像后收到内存警告。我不确定内存警告是否相关。

我认为问题可能出在文件命名上。记住,你应该在你的应用程序中包括视网膜和非视网膜图形。正如您添加的“~iphone”一样,我假设这是一个通用应用程序,因此您的图像应命名如下:

  • myImage~iphone.png
  • myImage@2x~iphone.png
  • myImage~ipad.png
  • myImage@2x~ipad.png
  • 然后在代码中只引用文件名的“myImage”部分,这样iOS就可以为您排序其余部分

    例如:

    UIImage *image = [UIImage imageNamed:@"myImage"];