NSBundle mainBundle возвращается ноль - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь изменить настройки сервера на основе конфигураций сборки в Xcode для нашего приложения для iOS.Я использую это руководство в качестве базы.Я установил свойство конфигурации в Info.plist, но когда я пытаюсь получить его в коде, оно возвращается nil.

info.plist entry

При поиске решений и тестировании яобнаружил, что я получаю nil от всего, что связано с mainBundle.Вот что я объявил в своем тестировании до сих пор.Что я пропускаю / делаю неправильно?

NSBundle *bundle = [NSBundle mainBundle];
NSString *configuration = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"Configuration"];
NSString *bundleName = [[NSBundle mainBundle] bundleIdentifier];
NSString *otherName = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString *)kCFBundleNameKey];

Я использую Xcode 9.3.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Оказывается, я продублировал свою конфигурацию отладки из конфигурации выпуска.Я заметил, что некоторые свойства отладки не совпадают.Поэтому я удалил и заново создал новые конфигурации.Это решило проблему.Если у кого-то есть какие-либо подробности о том, почему информация о пакете не была найдена в сборке выпуска, пожалуйста, прокомментируйте.

0 голосов
/ 19 мая 2018

В некоторых случаях, например, когда ваш код выполняется напрямую из Interface Builder, mainBundle не возвращает объект.Поэтому, в зависимости от вашего контекста, вы можете вместо этого использовать bundleForClass:.Укажите класс, который находится в нужном вам комплекте.

NSBundle *bundle = [NSBundle bundleForClass:[YourClass class]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...