在说这个问题之前,必须先解释一下,我们在引入project的时候,xcode会给我们3个选项

解决[[NSFileManager defaultManager] contentsOfDirectoryAtPath 方法获取不到数据的bug_html


1.Copy items if needed

主要是说明,是否要将文件复制到project所在文件夹。

假设不选中。并且该库文件不在project文件夹下。引入文件的时候就不过引入逻辑链接,不复制文件。(假设库文件移动,则可能在编译project的时候出错)

假设选中,则将该文件复制到project文件夹下(系统推荐的方式)。尽管引用的也是逻辑链接,可是不会由于引动库文件而引起错误


2.Create groups

把选择的文件加入到project的group下,假设你选择的是文件。则把目录觉得是group。他加入的目录相应的project目录和文件路径不一定是一一相应的。你能够删除文件,能够把这个文件删除在project外,也能够删除文件相应的本地文件。应该它生成的目录是黄色的。


比如:解决[[NSFileManager defaultManager] contentsOfDirectoryAtPath 方法获取不到数据的bug_html_02


3.Create folder references

这样的方法是建立一个目录的索引。同一时候目录中的全部文件也会加入到整个project。他加入的目录相应的project目录和文件路径是一一相应的。你要删除当中的文件的话能够直接到文件目录下把文件删除,然后再刷新一下目录。文件就会被删除了。这样加入目录的方法非常方便。你在做cocos2d的project时应该会经经常使用到。应该他生成的目录是蓝色的。


比如:解决[[NSFileManager defaultManager] contentsOfDirectoryAtPath 方法获取不到数据的bug_文件复制_03


通过Show in Finder 打开project,右键两个目录能够看出

解决[[NSFileManager defaultManager] contentsOfDirectoryAtPath 方法获取不到数据的bug_html_04解决[[NSFileManager defaultManager] contentsOfDirectoryAtPath 方法获取不到数据的bug_文件复制_05

我使用 [[NSFileManager defaultManager] contentsOfDirectoryAtPath 本意是获取bundle中的资源,所以用Create folder references,就能够解决获取为nil的bug了