1

我有一些奇怪的问题。

我无法从应用程序 mainbundle 中读取 plist 文件

该文件位于“复制捆绑资源”中

但不知何故无法读取

这是代码

NSLog(@"%@",[[NSBundle mainBundle] pathForResource:@"8chk" ofType:@"plist"]);

它一直打印(空)

这是屏幕截图

在此处输入图像描述

谁能告诉我发生了什么事?

4

5 回答 5

2

恐怕要说,您没有将其添加8chk.plist到您的目标中。

于 2013-07-10T14:31:11.043 回答
2

在项目中再次拖放 plist 文件,确保在将文件添加到项目时勾选复选框,即“在 ProjectName 中复制文件”

然后使用此代码使其可访问并从 plist 读取值

NSString *path = [[NSBundle mainBundle] pathForResource: @"YourPLIST" ofType: @"plist"]; 
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile: path];
[id obj = [dict objectForKey: @"YourKey"]; 

或者

// Reads the value of the custom key you added to the Info.plist
NSString *value = [mainBundle objectForInfoDictionaryKey:@"key"];

//Log the value
NSLog(@"Value = %@", value);
于 2013-07-10T15:14:58.977 回答
1
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Info.plist"];

这可能会奏效。确保将 plist 复制到目标并将其放在根目录中。您也可以尝试将 plist 文件放在保存应用程序默认 plist 的位置。

:)

于 2013-07-11T09:35:35.347 回答
0

你的路径是错误的。copy bundle resource应该只是8chk.plist8chk.plist ..in resources/8chk如果项目导航器显示正确的树,则不是。

于 2013-07-10T14:26:35.470 回答
0

嗨,Shoeb Amin,请检查您的 plist 文件是否添加到 Target->Copy Bundle 资源中

于 2013-07-10T14:10:53.523 回答