NSBundle - (еще не загружен) Ошибка - PullRequest
5 голосов
/ 09 декабря 2011

Я пытаюсь получить таблицу файлов строк для использования с NSLocalizedStringFromTableInBundle.

Я использую этот метод:

+(NSBundle*)getBundleForLang:(NSString*)lang{
     //get the path to the bundle
    NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"localizable" ofType:@"strings" inDirectory:nil forLocalization:lang];
    NSLog(@"bundlePath = %@",bundlePath);

    //load the bundle
    NSBundle *langBundle = [[NSBundle alloc] initWithPath:[bundlePath stringByDeletingLastPathComponent]];
    NSLog(@"langBundle = %@",langBundle);
    return langBundle;
}

Хотя он отлично работает на симуляторе, когда я пытаюсьчтобы использовать его на устройстве iPhone, я получаю NSLog:

2011-12-09 00:40:14.533 MyApp[12754:707] langBundle = NSBundle 
</var/mobile/Applications/915E6BCB-EC44-4F1D-891B-EF68E2FA89C2/MyApp.app/he.lproj> 
(not yet loaded)

Почему он не загружается и в чем проблема?

Спасибо

Шани

Ответы [ 2 ]

6 голосов
/ 09 декабря 2011

Проверьте регистр ваших файловых путей.Симулятор (по умолчанию) не чувствителен к регистру, а устройство -.Это может привести к тому, что симулятор успешно найдет файл, но устройство выйдет из строя.

0 голосов
/ 25 ноября 2018

Это не ошибка. Пакет строк, такой как en.lproj, не включает исполняемый файл. При попытке [bundle loadAndReturnError:] произойдет сбой, и *1003* документ скажет вам, почему.

...