我有一个包含多个目标的项目:
现在,我要做的是从MyLib中的Resources访问资源。我在MyLib和App中的目标依赖关系和复制包资源中添加了资源。在参考资料中,我已经将复制捆绑资源所需的所有文件添加到了。
但是,我无法在My Lib和App中访问Resources包。 [NSBundle bundleWithIdentifier]
返回nil。在MyLib中,当我列出所有包含[NSBundle allFrameworks]
或[NSBundle allBundles]
的包时,我可以看到App包,但不能看到Resouces包。有什么帮助吗?
答案 0 :(得分:1)
我找到了答案:
显然,bundleWithIdentifier
不会加载捆绑包。文档似乎有点模糊:
如果没有与标识符关联的现有捆绑包,则此方法创建并返回新的NSBundle对象。否则,返回现有实例。
有人可能会认为你可以加载一个捆绑包,但实际情况并非如此。您需要使用bundleWithPath
显式加载包,如下所示:
NSBundle *bundle = [NSBundle bundleWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] bundlePath], @"Resources.bundle"]];
为我修好了。