在说这个问题之前,必须先解释一下,我们在引入project的时候,xcode会给我们3个选项
1.Copy items if needed
主要是说明,是否要将文件复制到project所在文件夹。
假设不选中。并且该库文件不在project文件夹下。引入文件的时候就不过引入逻辑链接,不复制文件。(假设库文件移动,则可能在编译project的时候出错)
假设选中,则将该文件复制到project文件夹下(系统推荐的方式)。尽管引用的也是逻辑链接,可是不会由于引动库文件而引起错误
2.Create groups
把选择的文件加入到project的group下,假设你选择的是文件。则把目录觉得是group。他加入的目录相应的project目录和文件路径不一定是一一相应的。你能够删除文件,能够把这个文件删除在project外,也能够删除文件相应的本地文件。应该它生成的目录是黄色的。
比如:
3.Create folder references
这样的方法是建立一个目录的索引。同一时候目录中的全部文件也会加入到整个project。他加入的目录相应的project目录和文件路径是一一相应的。你要删除当中的文件的话能够直接到文件目录下把文件删除,然后再刷新一下目录。文件就会被删除了。这样加入目录的方法非常方便。你在做cocos2d的project时应该会经经常使用到。应该他生成的目录是蓝色的。
比如:
通过Show in Finder 打开project,右键两个目录能够看出
我使用 [[NSFileManager defaultManager] contentsOfDirectoryAtPath 本意是获取bundle中的资源,所以用Create
folder references,就能够解决获取为nil的bug了
參考文章:http://blog.csdn.net/yu0089/article/details/16984985
http://www.cnblogs.com/taintain1984/p/3423773.html
http://www.cocoachina.com/bbs/simple/?t20533.html
http://www.4byte.cn/question/21930/unable-to-copy-folder-from-application-bundle-to-document-directory.html