Не удалось получить данные info.plist методом -pathForResource?

В моем приложении я не могу получить 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 ответа

Чтобы получить Info plist в виде словаря, вы можете просто сделать:

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

Использование

[[NSBundle mainBundle] infoDictionary];

призвание infoDictionary на любом экземпляре пакета будет возвращено что-то (хотя он может содержать только закрытые ключи).

Попробуйте этот код

 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);

Я надеюсь, что это поможет вам.

Наконец я нахожу ответ самостоятельно

Я просто открываю каталог документов и открываю файл application.app и вижу, что файл plist отображается как application-Info.plist в пачке видно так же Info.plist

поэтому я изменил приведенный выше код и и получить словарь

NSString *commonDictionaryPath;
commonDictionaryPath=[[NSBundle mainBundle]pathForResource:@"Info" ofType:@"plist"];
NSDictionary *info=[NSDictionary dictionaryWithContentsOfFile:commonDictionaryPath];
NSLog(@"path %@",commonDictionaryPath);
Другие вопросы по тегам