无法访问资源包

问题描述:

我有几个目标的项目:无法访问资源包

  • MyLib中 - 静态库
  • 资源 - 资源包
  • 应用 - 例如应用程序现在

,我”想要做是从资源的访问内部资源MyLib中。我已经在这两个MyLib中和App添加资源目标相关复制包资源。在资源,我已经添加了我需要复制包资源的所有文件。

但是,我无法访问的资源包,无论是在我的库,也没有在应用程序。 [NSBundle bundleWithIdentifier]返回nil。 MyLib中,当我列出与[NSBundle allFrameworks][NSBundle allBundles]所有包,我可以看到应用程序包,但不能Resouces束。任何帮助?

我设法找到了答案:

显然,bundleWithIdentifier不会加载一个包。文档似乎有点模糊:

如果没有与标识符关联的现有束,此方法将创建并返回一个新的NSBundle对象。否则,返回现有的实例。

有人可能会想到,你可以加载一个捆绑它,情况并非如此。你需要与bundleWithPath明确加载包,就像这样:

NSBundle *bundle = [NSBundle bundleWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] bundlePath], @"Resources.bundle"]]; 

问题解决了我。