无法访问资源包
Cannot access resources bundle
我有一个包含多个目标的项目:
- MyLib - 静态库
- 资源 - 资源包
- 应用程序 - 示例应用程序
现在,我要做的是从 MyLib 中的 Resources 访问资源。我在 MyLib 和 App 的 Target Dependencies 和 Copy Bundle Resources 中添加了资源。在资源中,我添加了我需要的所有文件复制捆绑资源。
但是,我无法访问资源包,无论是在我的库中还是在应用程序中。 [NSBundle bundleWithIdentifier]
returns 无。在 MyLib 中,当我使用 [NSBundle allFrameworks]
或 [NSBundle allBundles]
列出所有捆绑包时,我可以看到 App 捆绑包,但看不到 Resouces 捆绑包。有帮助吗?
我找到了答案:
显然,bundleWithIdentifier
不会加载包。文档对此似乎有点含糊:
This method creates and returns a new NSBundle object if there is no existing bundle associated with identifier. Otherwise, the existing instance is returned.
人们可能认为您可以用它加载一个包,但事实并非如此。您需要使用 bundleWithPath
显式加载包,如下所示:
NSBundle *bundle = [NSBundle bundleWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] bundlePath], @"Resources.bundle"]];
帮我修好了。
我有一个包含多个目标的项目:
- MyLib - 静态库
- 资源 - 资源包
- 应用程序 - 示例应用程序
现在,我要做的是从 MyLib 中的 Resources 访问资源。我在 MyLib 和 App 的 Target Dependencies 和 Copy Bundle Resources 中添加了资源。在资源中,我添加了我需要的所有文件复制捆绑资源。
但是,我无法访问资源包,无论是在我的库中还是在应用程序中。 [NSBundle bundleWithIdentifier]
returns 无。在 MyLib 中,当我使用 [NSBundle allFrameworks]
或 [NSBundle allBundles]
列出所有捆绑包时,我可以看到 App 捆绑包,但看不到 Resouces 捆绑包。有帮助吗?
我找到了答案:
显然,bundleWithIdentifier
不会加载包。文档对此似乎有点含糊:
This method creates and returns a new NSBundle object if there is no existing bundle associated with identifier. Otherwise, the existing instance is returned.
人们可能认为您可以用它加载一个包,但事实并非如此。您需要使用 bundleWithPath
显式加载包,如下所示:
NSBundle *bundle = [NSBundle bundleWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] bundlePath], @"Resources.bundle"]];
帮我修好了。