bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,文本文件,属性列表,语言包,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBundle.我们的程序是一个bundle. 在Finder中,一个应用程序看上去和其他文件没有什么区别. 但是实际上它是一个包含了nib文件,编译代码,以及其他资源的目录. 我们把这个目录叫做程序的main bundle。

  1、通过使用下面的方法得到程序的main bundle

  NSBundle *myBundle = [NSBundle mainBundle];

  2、使用NSBundle加载nib文件

  BOOL successful = [NSBundle loadNibNamed:@"About" owner:someObject];

  self.titleView = [[[NSBundle mainBundle]loadNibNamed:NSStringFromClass([CCNearbyTitleView class]) owner:self options:nil] firstObject];

  3、使用NSBundle加载xml文件

  NSString *filePath = [[NSBundle mainBundle] pathForResouse:@"re" ofType:@"xml"];

  NSData *data = [[NSData alloc] initWithContentsOfFile:filePath];

  4、使用NSBundle加载图片文件

  NSString *filePath = [[NSBundle mainBundle] pathForResouse:@"AppIcon" ofType:@"png"];

  UIImage *image=[UIImage imageWithContentsOfFile:filePath];

  //同理这个[UIImage imageNamed:@"AppIcon"];

  5、 使用NSBundle加载本地语言包

  中文

  "change_language" = "悄悄是别离的笙箫,沉默是今晚的康桥";

  "button" = "切换语言";
  英文:
  "change_language" = "Quietness is my farewell music, silence is Cambridge tonight";
  "button" = "Change Language";

  NSUserDefaults *def = [NSUserDefaults standardUserDefaults];

NSString *currLanguage = [def valueForKey:@"LocalLanguageKey"];

if(!currLanguage){

NSArray *preferredLanguages = [NSLocale preferredLanguages];

currLanguage = preferredLanguages[0];

if ([currLanguage hasPrefix:@"en"]) {

currLanguage = @"en";

}else if ([currLanguage hasPrefix:@"zh"]) {

currLanguage = @"zh-Hant";

}else currLanguage = @"en";

[def setValue:currLanguage forKey:@"LocalLanguageKey"];

[def synchronize];

}

  NSString *path = [[NSBundle mainBundle] pathForResource:[[NSUserDefaults standardUserDefaults] objectForKey:@"LocalLanguageKey"] ofType:@"lproj"];

 NSBundle* bundle = [NSBundle bundleWithPath:path];

//此处是上面赋值的bundle

NSString *str = [bundle localizedStringForKey:@"change_language" value:nil table:@"MultiLanguage"];

NSString *buttonStr = [bundle localizedStringForKey:@"button" value:nil table:@"MultiLanguage"];

  NSLog(@"wenzi:%@,%@",str,buttonStr);

iOS中NSBundle使用小结的更多相关文章

  1. iOS中NSBundle的介绍

    bundle是一个目录,其中包含了程序会使用到的资源.这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in).对应bundle,cocoa提供了类NSBund ...

  2. iOS中GCD的使用小结

    http://www.jianshu.com/p/ae786a4cf3b1 本篇博客共分以下几个模块来介绍GCD的相关内容: 多线程相关概念 多线程编程技术的优缺点比较? GCD中的三种队列类型 Th ...

  3. iOS 中的 HotFix 方案总结详解

    相信HotFix大家应该都很熟悉了,今天主要对于最近调研的一些方案做一些总结.iOS中的HotFix方案大致可以分为四种: WaxPatch(Alibaba) Dynamic Framework(Ap ...

  4. iOS中获取各种文件的目录路径的方法

    我们的app在手机中存放的路径是:/var/mobile/Applications/4434-4453A-B453-4ADF535345ADAF344 后面的目录4434-4453A-B453-4AD ...

  5. IOS中无缓存的图片载入

    在IOS中,我们常用[UIImage imageNamed]方法获取图像,这种方法简便,容易理解.但是有个缺点,就是有缓存.这种方式 传人的图像的就是通过文件名方式文件名.如果,我们内存有限,我们就必 ...

  6. ios 中使用https的知识

    先看文章,这篇文章说的是使用AFNetworing进行https时的事项,十分好!http://blog.cnbang.net/tech/2416/ ios中使用https,主要就是使用NSURLCr ...

  7. iOS中NSUserDefaults详解

    NSUserDefault 作为iOS中一种轻量级数据本地化方式,简单易用,经常用于存储一些应用相关属性记录,例如图书app的背景色,进度,上次阅读的书籍及相关配置信息.NSUserDefault实质 ...

  8. iOS中JS 与OC的交互(JavaScriptCore.framework)

    iOS中实现js与oc的交互,目前网上也有不少流行的开源解决方案: 如:react native 当然一些轻量级的任务使用系统提供的UIWebView 以及JavaScriptCore.framewo ...

  9. IOS中获取各种文件的路径介绍及方法

    IOS中获取各种文件的目录路径的方法 技术交流新QQ群:414971585 iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. docum ...

  10. iOS中使用RSA对数据进行加密解密

    RSA算法是一种非对称加密算法,常被用于加密数据传输.如果配合上数字摘要算法, 也可以用于文件签名. 本文将讨论如何在iOS中使用RSA传输加密数据. 本文环境 mac os openssl-1.0. ...

随机推荐

  1. Fusion Compute install

    分区选择默认 配置网络 (使用tab和上下左右 会有红色阴影表示当前选中部分) 密码有复杂度要求 这里输huawei12#$ 一个vrm单节点 两个vrm为主备 FC由vrm与can组成 Vrm提供管 ...

  2. python global将结果存储起来给另外一个文件对象使用

    python global将结果存储起来给另外一个文件对象使用 使用场景: 在aaa.py文件里面操作数据生成结果C 然后再在bbb.py文件里面使用C 下面是aaa.py代码: #!/usr/bin ...

  3. Jmeter函数助手37-setProperty

    setProperty函数用于修改jmeter属性值. 属性名称:填入需要修改的属性名 Value of property:填入需要修改的属性值 Return Original Value of pr ...

  4. 【Spring-Security】Re11 Oauth2协议 P2 Redis存储 密码模式令牌

    一.Redis配置 需要的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artif ...

  5. mini_imagenet 数据集生成工具 (续)

    续接前文:  mini_imagenet 数据集生成工具 ============================================ 前文接受了mini_imagenet数据集的生成,但 ...

  6. Ubuntu22.04下安装chrome浏览器

    Ubuntu下Chrome的下载: 地址: https://www.google.cn/intl/zh-CN/chrome/ 下载后的文件: 安装: 命令: sudo dpkg -i google-c ...

  7. Apache DolphinScheduler如何开启开机自启动功能?

    转载自东华果汁哥 Apache DolphinScheduler 是一个分布式.去中心化的大数据工作流调度系统,支持大数据任务调度.若要设置 DolphinScheduler 开机自启动,通常需要将其 ...

  8. GAN总结

    GAN总结 本篇文章主要是根据GitHub上的GAN代码库[PyTorch-GAN]进行GAN的复习和回顾,对于之前GAN的各种结构的一种简要的概括. Code 关于评价GAN模型的标准 Incept ...

  9. 2023 ICPC网络赛第一场(A,D,J,L)

    2023 ICPC网络赛第一场(A,D,J,L) A Qualifiers Ranking Rules 先把两场比赛的学校排名处理出来,然后两场比赛的同位次进行合并即可 #include <bi ...

  10. flex数据绑定

    1 .方法绑定    [Bindable(event="myFlagChanged")] private function isEnabled():String { if (myF ...