在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的目录结构。)