NSBundle - (еще не загружено) Ошибка

Я пытаюсь получить таблицу строковых файлов для использования с 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)

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

Спасибо

Шани


person shannoga    schedule 08.12.2011    source источник
comment
Разве ваш файл не должен называться Localizable.strings вместо localizable.strings?   -  person Lily Ballard    schedule 09.12.2011


Ответы (2)


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

person Alex Deem    schedule 08.12.2011
comment
Ну, это была проблема. интересно то, что я назвал файлы локализуемыми, так что дело совпало. но кажется, что имя важно здесь. - person shannoga; 09.12.2011

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

person DawnSong    schedule 25.11.2018