framework资源文件读取

1.在framework里面读framwork本身的资源文件

这是framework内部的资源,跟其余都没有关系。可是framework不能单独存在,必需要放在某个“主程序”中才能起做用。bundle参数若是不传,那么默认是mainBundle,这种状况路径就不对了。这种状况下,能够用下面这个API来得到bundle参数。html

  // 获取bundle参数

    NSBundle *bundle = [NSBundle bundleForClass:self.class];

    // 读UIStoryboard

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@“StoryboardName” bundle:bundle];

    // 读UIImage

    UIImage *image = [UIImage imageNamed:@"icon_back_gray" inBundle:bundle compatibleWithTraitCollection:nil];

    // 文件路径

    NSString* htmlPath = [bundle pathForResource:@"index" ofType:@"html"];

2.在主程序中读framework里面的资源文件

一样也是利用bundle参数来读取,class选择framework中某个导出的class就能够了。spa

// 获取bundle参数,ZAFinanceFrameworkManager是framework中接口类

    NSBundle *bundle = [NSBundle bundleForClass:[ZAFinanceFrameworkManager class]];

3.在framework中读主程序的资源文件

这个和在主程序中读本身的同样,不须要bundle参数,必定要传的话,就传nil或者[NSBundle mainBundle]code

4.从framework里面读其余framwork里面的资源文件

一样也是利用bundle参数来读取,class选择目标framework中某个导出的class就能够了。htm

 

小结blog

在单体程序中,NSBundle这个参数不须要管,所有传nil或者是默认的[NSBundle mainBundle]就能够了。接口

引入了framework以后,就须要NSBundle这个参数来区分资源所在的模块。肯定NSBundle比较简单的方法是用下面这个API,其中的class只要选择资源所在的framework中的某个class就能够了。获取到bundle后,经过bundle获取资源文件用法一致。资源

+ (NSBundle *)bundleForClass:(Class)aClass;
相关文章
相关标签/搜索