资源名称中的大小写敏感

在iOS应用开发中,需要用到很多的资源文件,有图片、数据库文件或者xib文件。一般情况下,使用英文字母命名,而不使用中文名称是一个不错的习惯,在类Unix系统下,中文名称很有可能支持不是很好。退一步说,不断的中英文切换也很麻烦。但是英文名称有个不好的地方就是大小写。在使用驼峰命名法时,更是要命,一不小心就出错了。
但是Apple有一个更奇葩的地方是,对于资源文件,模拟其中运行是不会区分文件名中的字母大小写的,也就是说A.png和a.png对模拟器来说是同一个东西。但是一旦放入真机后,却变成了大小写敏感。
如果一个资源文件a.xib被写成了A.xib,很遗憾,真机上会抛出异常,直接crash,告诉你找不到这个文件。
*** Terminating app due to uncaught exception ‘NSInternalInconsistencyException’, reason: ‘Could not load NIB in bundle: ‘NSBundle (loaded)’ with name ‘A”
*** First throw call stack:
(0x37a7d2a3 0x3425497f 0x37a7d1c5 0×38314491 0x38313abb 0x3820c01d 0×38196465 0×38222333 0x38263cd1 0x38262fc7 0×38385257 0xfaa5d 0x1b7125 0xaeb23 0xaf387 0x391d7a6f 0x37a525df 0x37a52291 0x37a50f01 0x379c3ebd 0x379c3d49 0x3379c2eb 0x381cb2f9 0x270d1 0×27068)
libc++abi.dylib: terminate called throwing an exception

标签: , , , , ,
文章分类 iPhone应用开发
2 条评论在 “资源名称中的大小写敏感” 上
  1. 佚名说道:

    unix系统下文件名..路径什么都是大小写敏感的哦..ios mac os x都是unix系统嘛..

    • wcrane说道:

      Unix系统下的文件名路径是大小写敏感的,Mac OS X也是unix系统,大部分情况下对文件名和路径都区分大小写,但是可能是为了方便,在某些程序中或者甚至是Terminal下,有时也并不会区分大小写。

发表评论