NSBundle“尚未加载”现有路径

时间:2012-10-28 10:03:15

标签: ios nsbundle

我正在尝试实现一种在应用程序中更改语言的方法。

我想我已经弄明白了,但由于某种原因,该文件夹没有作为一个包装

我有一个名为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

此错误消息的含义是什么

2 个答案:

答案 0 :(得分:0)

在调用

时,看起来我得到了我想要的东西
[bundle localizedStringForKey:key value:NULL table:nil];

答案 1 :(得分:0)

当字符串文件中有错误(例如缺少分号或注释标记不完整)时,可能的陷阱也是

Xcode不会检查文件中的语法错误。