我正在尝试实现一种在应用程序中更改语言的方法。
我想我已经弄明白了,但由于某种原因,该文件夹没有作为一个包装
我有一个名为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 from path ........ / 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
此错误消息的含义是什么
答案 0 :(得分:0)
在调用
时,看起来我得到了我想要的东西[bundle localizedStringForKey:key value:NULL table:nil];
答案 1 :(得分:0)
当字符串文件中有错误(例如缺少分号或注释标记不完整)时,可能的陷阱也是
。Xcode不会检查文件中的语法错误。