【问题标题】:Cannot access resources bundle无法访问资源包
【发布时间】:2017-07-17 12:52:13
【问题描述】:

我有一个项目有几个目标:

  • MyLib - 静态库
  • 资源 - 资源包
  • 应用 - 示例应用

现在,我要做的是从 MyLib 中的 Resources 访问资源。我在 MyLib 和 App 的 Target Dependencies 和 Copy Bundle Resources 中添加了资源。在资源中,我添加了复制捆绑资源所需的所有文件。

但是,我无法在 My Lib 和 App 中访问资源包。 [NSBundle bundleWithIdentifier] 返回零。在 MyLib 中,当我列出所有带有 [NSBundle allFrameworks] 或 [NSBundle allBundles] 的包时,我可以看到 App 包,但看不到资源包。有什么帮助吗?

【问题讨论】:

    标签: ios objective-c xcode bundle nsbundle


    【解决方案1】:

    我设法找到了答案:

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

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

    人们可能认为您可以使用它加载一个捆绑包,但事实并非如此。您需要使用bundleWithPath 显式加载捆绑包,如下所示:

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

    这为我解决了问题。

    【讨论】:

      猜你喜欢
      • 2020-10-03
      • 2012-12-20
      • 2012-11-05
      • 2015-07-17
      • 2019-01-02
      • 1970-01-01
      • 1970-01-01
      • 2021-04-30
      • 2011-10-15
      相关资源
      最近更新 更多