无法通过-pathForResource方法检索info.plist数据?

时间:2013-05-23 13:05:17

标签: ios plist nsbundle

在我的应用程序中,我无法使用以下代码获取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 个答案:

答案 0 :(得分:2)

要将Info plist作为字典,您可以这样做:

NSDictionary *theDictionary = [[NSBundle mainBundle] infoDictionary];

答案 1 :(得分:1)

使用

[[NSBundle mainBundle] infoDictionary];

在任何bundle实例上调用infoDictionary都会返回一些内容(认为它可能只包含私钥)。

答案 2 :(得分: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);

我希望它可以帮到你。

答案 3 :(得分: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);