我正试图实现在应用程序内更改语言的方法。
我认为我已经想出了所有的细节,但由于某些原因,文件夹没有作为一个捆绑包加载。
我有一个名为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>(尚未加载))
在iPhone和模拟器上都是如此(当然路径不同)。
我已经检查了.app文件夹,kh.lproj文件夹在那里(小写字母)。
有人知道这是为什么吗?如果我尝试加载不存在的文件,它只会忽略它并且不会尝试加载它。
编辑
如果有帮助的话,当我使用loadAndReturnError:(NSError)时,我收到以下消息:
NSLocalizedFailureReason=无法找到包的可执行文件。, NSLocalizedDescription=无法加载“kh.lproj”包,因为无法找到其可执行文件。, NSBundlePath=......./A65E8399-6CDB-4CAE-9074-803125E78BBA/storeconsole.app/kh.lproj
这个错误消息是什么意思?