NSBundle“尚未加载”现有路径

问题描述 投票:4回答:1

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

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

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

这个错误消息是什么意思

ios nsbundle
1个回答
0
投票

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

[bundle localizedStringForKey:key value:NULL table:nil];
© www.soinside.com 2019 - 2024. All rights reserved.