这是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"];
一样也是利用bundle参数来读取,class选择framework中某个导出的class就能够了。spa
// 获取bundle参数,ZAFinanceFrameworkManager是framework中接口类 NSBundle *bundle = [NSBundle bundleForClass:[ZAFinanceFrameworkManager class]];
这个和在主程序中读本身的同样,不须要bundle参数,必定要传的话,就传nil或者[NSBundle mainBundle]code
一样也是利用bundle参数来读取,class选择目标framework中某个导出的class就能够了。htm
小结blog
在单体程序中,NSBundle这个参数不须要管,所有传nil或者是默认的[NSBundle mainBundle]就能够了。接口
引入了framework以后,就须要NSBundle这个参数来区分资源所在的模块。肯定NSBundle比较简单的方法是用下面这个API,其中的class只要选择资源所在的framework中的某个class就能够了。获取到bundle后,经过bundle获取资源文件用法一致。资源
+ (NSBundle *)bundleForClass:(Class)aClass;