我想将我的资源、nib 文件和本地化文件分离到一个通用的可重用包中。因此,我为我的 ios 应用程序创建了一个包,并使用构建阶段指定了要包含在包中的资源,复制包资源。但是,现在如果我尝试加载捆绑包,我将无法加载捆绑包。我尝试使用 [NSBundle allBundles] 并且该数组仅显示主应用程序包。
我还尝试枚举 NSApplicationPath 的目录,但唯一可用的包是我的应用程序默认包。我想学习这种技术并利用它来分离我的资源。任何帮助和建议将不胜感激。谢谢
我想将我的资源、nib 文件和本地化文件分离到一个通用的可重用包中。因此,我为我的 ios 应用程序创建了一个包,并使用构建阶段指定了要包含在包中的资源,复制包资源。但是,现在如果我尝试加载捆绑包,我将无法加载捆绑包。我尝试使用 [NSBundle allBundles] 并且该数组仅显示主应用程序包。
我还尝试枚举 NSApplicationPath 的目录,但唯一可用的包是我的应用程序默认包。我想学习这种技术并利用它来分离我的资源。任何帮助和建议将不胜感激。谢谢
[NSBundle bundleWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] bundlePath], pathToYourBundleWithinTheDotAppDirectory];
让我知道你是怎么办的。
Try something like this:
NSBundle* bundle=[NSBundle bundleWithIdentifier: @"bundle name"];
And make sure that you have selected these options when you have dragged the bundle to the project:
对于具有一个捆绑包的项目,我使用:
// in this example, we load test.png from the bundle
NSString *pathToResource = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"png"];
之所以如此方便,是因为当您拥有本地化文件时,它会提供当前用户区域设置的文件路径。这很方便,因为本地化文件不在主目录中,而是在它们自己的子文件夹中(例如,英文本地化文件在 @"en.lproj" 子文件夹中),并且通过名称调用它们很麻烦,因为您需要完整路径。此方法为您获取路径。