0

在我的应用程序中,我无法使用以下代码获取 plist。我正在使用 Xcode 4.5,这是我检索 plist 的代码,

    NSBundle *thisBundle = [NSBundle mainBundle];
    NSDictionary *theDictionary;
    NSString *commonDictionaryPath;
    if (commonDictionaryPath = [thisBundle pathForResource:@"newfonts-Info" ofType:@"plist"])
    {
        theDictionary = [[NSDictionary alloc] initWithContentsOfFile:commonDictionaryPath];
    }

注意:-如果我尝试检索文本或 xml 文件,那么上面的代码可以正常工作。

4

4 回答 4

2

要将 Info plist 作为字典,您可以执行以下操作:

NSDictionary *theDictionary = [[NSBundle mainBundle] infoDictionary];
于 2013-05-23T13:09:21.573 回答
1

利用

[[NSBundle mainBundle] infoDictionary];

调用infoDictionary任何捆绑实例都会返回一些东西(认为它可能只包含私钥)。

于 2013-05-23T13:09:15.057 回答
0

试试这个代码

 SArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
 NSString *documentsPath = [paths objectAtIndex:0];


 NSString* fooPath = [[NSBundle mainBundle] pathForResource:@"newfonts-Info" ofType:@"plist"];
 NSLog(fooPath);
 contentArray = [NSArray arrayWithContentsOfFile:fooPath];
 NSLog(@"%@",contentArray);

或者这也可以与 NSDictionary 一起使用

 NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"newfonts-Info" ofType:@"plist"];

 NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

 NSLog(@"%@",dict);

我希望它可以帮助你。

于 2013-05-23T13:11:27.383 回答
0

最后我自己找到了答案

我只是打开文档目录并打开 application.app 文件,然后看到application-Info.plist包中显示的 plist 文件就像Info.plist

所以我更改了上面的代码并检索字典

NSString *commonDictionaryPath;
commonDictionaryPath=[[NSBundle mainBundle]pathForResource:@"Info" ofType:@"plist"];
NSDictionary *info=[NSDictionary dictionaryWithContentsOfFile:commonDictionaryPath];
NSLog(@"path %@",commonDictionaryPath);
于 2013-05-23T14:01:00.100 回答