2012-10-28 72 views
4

我試圖實現一種方法來更改應用程序內部的語言。NSBundle「尚未加載」現有路徑

我想我擁有了一切想通了,但由於某些原因,文件夾沒有laded成捆

我有一個名爲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的輸出文件夾是

Language: kh from path ......../F1AA1E74-A014-4331-BD1B-D05D0E54AFF3/console.app/kh.lproj (NSBundle <......./F1AA1E74-A014-4331-BD1B-D05D0E54AFF3/console.app/kh.lproj> (not yet loaded))

在iPhone和模擬器(當然有不同的路徑)。

我已經在.app文件夾中檢查了kh.lproj文件夾。 (小寫)。

有沒有人知道爲什麼會發生這種情況?如果我嘗試加載一個不存在的文件,它只是忽略它,不要嘗試加載它。

編輯

如果任何人的幫助,當我使用loadAndReturnError:(NSError)我得到的消息:

NSLocalizedFailureReason=The bundle’s executable couldn’t be located., NSLocalizedDescription=The bundle 「kh.lproj」 couldn’t be loaded because its executable couldn’t be located., NSBundlePath=......./A65E8399-6CDB-4CAE-9074-803125E78BBA/storeconsole.app/kh.lproj

這是什麼錯誤訊息

+0

您是否檢查它是否標記爲正確的目標?有時添加資源會導致不自動檢查目標。 – iOS

+0

是的,它在Copy Bundle Resources構建階段。如上所述,它在編譯後得到的.app文件夾中,所以它絕對存在 – Erik

+0

對不起,至今我還沒有任何線索。 – iOS

回答

0

貌似我得到我想要的無論如何撥打電話

[bundle localizedStringForKey:key value:NULL table:nil]; 
+0

以上代碼總是會加載英文或移動語言。 – Alok

+0

關鍵輸入是什麼? – zedzhao