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上应用程序包中的所有文件都是只读的。不需要检查包中是否可以找到该文件。因为您正手知道它应该在那里,因为您只能将文件添加到主包中,所以添加编译时。运行应用程序时,捆绑包是只读的。文件不能出现在那里。不需要检查捆绑包中是否可以找到文件。因为您正手知道它应该在那里,因为您只能将文件添加到主包中,所以添加编译时。运行应用程序时,捆绑包是只读的,文件不能出现在那里。