5

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

我想我已经弄清楚了,但是由于某种原因,该文件夹没有作为捆绑包装运

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

这个错误信息是什么意思

4

2 回答 2

0

看起来我在打电话时得到了我想要的东西

[bundle localizedStringForKey:key value:NULL table:nil];
于 2012-10-28T14:39:19.080 回答
0

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

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

于 2020-06-24T08:15:07.307 回答