无法访问资源包

Cannot access resources bundle

我有一个包含多个目标的项目:

现在,我要做的是从 MyLib 中的 Resources 访问资源。我在 MyLib 和 App 的 Target DependenciesCopy 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"]];

帮我修好了。