NSBundle еще не загружен для существующего пути

Я пытаюсь реализовать способ изменения языка внутри приложения.

Думаю, я уже во всем разобрался, но папка почему-то не закладывается связкой

У меня есть папка kh.lproj

  NSString *path = [[NSBundle mainBundle] pathForResource:newLanguage ofType:@"lproj"];

  if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
    bundle = [NSBundle bundleWithPath:path];
    DLOG(@"Language: %@ from path %@ (%@)", newLanguage, path, bundle);
  }

Вывод моего dlog:

Язык: kh из пути ........ / F1AA1E74-A014-4331-BD1B-D05D0E54AFF3 / console.app / kh.lproj (NSBundle ‹....... / F1AA1E74-A014-4331-BD1B- D05D0E54AFF3 / console.app / kh.lproj> (еще не загружено))

И на айфоне, и в симуляторе (конечно, разными путями).

Я проверил папку .app и там есть папка kh.lproj. (В нижнем регистре).

Есть ли у кого-нибудь представление о том, почему это происходит? Если я пытаюсь загрузить несуществующий файл, он просто игнорирует его и не пытается загрузить.

РЕДАКТИРОВАТЬ

Если это поможет, когда я использую loadAndReturnError: (NSError), я получаю сообщение:

NSLocalizedFailureReason = Не удалось найти исполняемый файл пакета., NSLocalizedDescription = Не удалось загрузить пакет «kh.lproj», потому что не удалось найти его исполняемый файл. NSBundlePath = ....... / A65E8399-6CDB- 4CAE-9074-803125E78BBA / storeconsole.app / kh.lproj

Что означает это сообщение об ошибке


person Erik    schedule 28.10.2012    source источник
comment
Вы проверили, правильно ли он помечен? Иногда добавление ресурсов не приводит к автоматическим проверкам целей.   -  person iOS    schedule 28.10.2012
comment
Да, он находится на этапе сборки Copy Bundle Resources. И, как упоминалось выше, он находится в папке .app, которую я получаю после компиляции, так что он определенно там   -  person Erik    schedule 28.10.2012
comment
Извините, тогда я пока понятия не имею.   -  person iOS    schedule 28.10.2012
comment
Я думаю, что загрузка имеет значение только для использования исполняемого кода пакета. Если вы используете только ресурсы, вам не о чем беспокоиться. developer.apple.com/library/mac/ документация / Какао / Концептуальные /   -  person James    schedule 18.03.2015
comment
Я встретил ту же проблему. Я хочу использовать xib из пакета собственного фреймворка, который не включает исключительный код, но все еще не работает. Не понимаю, в чем проблема.   -  person zedzhao    schedule 27.04.2017


Ответы (2)


Похоже, я все равно получаю то, что хочу, когда звоню

[bundle localizedStringForKey:key value:NULL table:nil];
person Erik    schedule 28.10.2012
comment
Приведенный выше код всегда загружает английский язык или ваш мобильный язык. - person Alok; 24.08.2015
comment
какой ключевой ввод? - person zedzhao; 27.04.2017

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

Xcode не проверяет файл на наличие синтаксических ошибок.

person Karsten    schedule 24.06.2020