无法访问资源包
问题描述:
我有几个目标的项目:无法访问资源包
- 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"]];
问题解决了我。