在xcode中使用fopen时为NULL
我想从一个iPhone 4英寸的应用程序使用C
初始化一个multidimensional array,但我不能打开使用fopen
的文件。 每当我尝试这个我得到一个NULL
:
FILE *f; f=fopen("/level1.rez", "r"); if (f == NULL) { printf("Error Reading File\n"); //exit (0); }
我不知道如何使用C
打开文件。
我已经尝试过了
我用getcwd
打印出当前的工作目录,但是我得到的只是“/”,当我把它附加到文件名时,我仍然得到NULL
。
我读过,如果你去product > scheme > edit scheme
然后选项,你可以改变当前的工作目录,但我没有看到该选项。
另外我读到,你可以使用绝对path,如: /users/name/desktop/program
但我是新的iOS开发,所以我不知道这是一个好主意。
那么我怎样才能fopen
工作呢?
您可以在iOS中指定绝对path,但示例中的path可能在Mac OS中使用,而且它的布局稍有不同。 你可以像你说的那样指定fopen()的path,但是还有更多的工作要找出这个path的第一部分真的是什么。
iOS将所有AppStore应用程序放入随机生成的沙箱目录名称的文件夹中。 它基本上是一个GUID的hexstring。 因此,您需要使用iOS框架中的方法来获取path(或URL)的第一部分到您的文件。
如果该文件是应用程序包的一部分,因此可以随应用程序一起提供,那么您将需要使用NSBundle方法来查找文件的path。
如果在应用程序启动后生成或下载文件,则需要使用NSFileManager方法来确定文件目录的path。 (通常是文档目录,你可以在沙箱内build立你自己select的目录结构。)