2011-12-08 18 views
3

NSLocalizedStringFromTableInBundleで使用する文字列ファイルテーブルを取得しようとしています。NSBundle - まだロードされていません。エラー

私はこの方法で使用しています:

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) 

なぜISN:それはシミュレータ上で大きな取り組んでいる間、私はiPhoneのデバイス上でそれを使用しようとすると、

+(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; 
} 

を私はこののNSLog取得しますそれがロードされ、どこに問題がありますか?

おかげ

シャニー

+2

ファイルを 'localizable.strings'ではなく' Localizable.strings'と呼ぶべきですか? –

答えて

6

は、あなたのファイルパスのケースを確認してください。 シミュレータ(デフォルト)は大文字と小文字を区別しませんが、デバイスはです。 これにより、シミュレータはファイルを正常に検出できますが、デバイスは異常終了する可能性があります。

+0

それはまあ問題でした。興味深いのは、ファイルを「ローカライズ可能」と呼んで、ケースが一致したということです。ここではその名前が重要であるようです。 – shannoga

関連する問題