NSBundle возвращает ноль - PullRequest
       6

NSBundle возвращает ноль

1 голос
/ 31 августа 2010

Я хотел прочитать информацию о версии моего приложения из файла plit.

Для этого я использую код, показанный ниже.

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

        // Format output

        NSLog(@"%@",myFilePath);

Выход

 2010-08-31 17:14:10.095 MyApp[8759:20b] (null)

Всегда возвращает nil, даже если я пытался импортировать существующий файл типа, text.txt по-прежнему возвращает nil, где text.txt импортируется в приложение.

Я смотрел на проблему из-за проблемы, не каждый рекомендует использовать NSBundel для чтения предварительно импортированного файла, но бесполезно.

Любая помощь или лучший способ прочитать версию приложения.

Ответы [ 2 ]

2 голосов
/ 31 августа 2010

Причина, по которой это не работает, заключается в том, что pathForResource ищет вещи внутри «MyApp.app/Contents/Resources».Файл Info.plist не находится внутри папки ресурсов, поэтому он вернет nil, если вы его там найдете.Правильный способ добиться этого - использовать метод infoDictionary в NSBundle.

2 голосов
/ 31 августа 2010

Получил решение по другой ссылке в переполнении стека здесь .

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];


        NSLog(@"%@",version);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...