Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pathForResource在iOS中为空_Ios_Objective C_Xcode_Cocoa Touch_Plist - Fatal编程技术网

pathForResource在iOS中为空

pathForResource在iOS中为空,ios,objective-c,xcode,cocoa-touch,plist,Ios,Objective C,Xcode,Cocoa Touch,Plist,无法理解,为什么这行代码返回(null) 我需要创建新的plist,但无法理解,是否应该在创建空文件之前获取它的路径。。有什么想法吗 PS我现在的项目中只有h、m和plist文件 部署后,您不会在捆绑包中创建新文件。该捆绑包包含应用程序附带的所有资源和文件 而是在应用程序的“文档”文件夹中创建新文件。要获取文档文件夹路径,可以使用以下方法(包括在某些应用程序模板项目中): 然后,您只需附加要使用的文件名 NSString *path = [self applicationDocumentsDir

无法理解,为什么这行代码返回
(null)

我需要创建新的plist,但无法理解,是否应该在创建空文件之前获取它的路径。。有什么想法吗


PS我现在的项目中只有h、m和plist文件

部署后,您不会在捆绑包中创建新文件。该捆绑包包含应用程序附带的所有资源和文件

而是在应用程序的“文档”文件夹中创建新文件。要获取文档文件夹路径,可以使用以下方法(包括在某些应用程序模板项目中):

然后,您只需附加要使用的文件名

NSString *path = [self applicationDocumentsDirectory];
path = [path stringByAppendingPathComponent:@"data.plist"];

出于组织目的,您可能还希望在“文档”文件夹中有一些其他文件夹。您可以使用
NSFileManager
执行此操作。

部署后,您不会在捆绑包中创建新文件。该捆绑包包含应用程序附带的所有资源和文件

而是在应用程序的“文档”文件夹中创建新文件。要获取文档文件夹路径,可以使用以下方法(包括在某些应用程序模板项目中):

然后,您只需附加要使用的文件名

NSString *path = [self applicationDocumentsDirectory];
path = [path stringByAppendingPathComponent:@"data.plist"];

出于组织目的,您可能还希望在“文档”文件夹中有一些其他文件夹。您可以使用
NSFileManager
来执行此操作。

是的,您的猜测是正确的-您需要先创建一个文件。下面是类引用文档对方法返回值的说明

“返回值 资源文件的完整路径名,如果找不到该文件,则为nil。“

你可以这样做:

if ( [ [NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"] )
    plistPath = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];
else
    // Create new file here
此外,如果要搜索唯一的文件名,则可以在上面的方法调用中省略类型extenxion


来源:

是的,你的猜测是对的-你需要先创建一个文件。下面是类引用文档对方法返回值的说明

“返回值 资源文件的完整路径名,如果找不到该文件,则为nil。“

你可以这样做:

if ( [ [NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"] )
    plistPath = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];
else
    // Create new file here
此外,如果要搜索唯一的文件名,则可以在上面的方法调用中省略类型extenxion


来源:

为了补充这个正确答案,您也不能更改
mainBundle
中的任何文件。iOS上的应用程序捆绑包中的所有文件都是只读的。只需添加到此正确答案,您也不能更改
mainBundle
中的任何文件。iOS上应用程序包中的所有文件都是只读的。不需要检查包中是否可以找到该文件。因为您正手知道它应该在那里,因为您只能将文件添加到主包中,所以添加编译时。运行应用程序时,捆绑包是只读的。文件不能出现在那里。不需要检查捆绑包中是否可以找到文件。因为您正手知道它应该在那里,因为您只能将文件添加到主包中,所以添加编译时。运行应用程序时,捆绑包是只读的,文件不能出现在那里。