Framework 中本地資源加載與我們平時(shí)工程中的資源加載是不同的,主要是因?yàn)樗鼈兊腂undle 不同 。 Framework 是一個(gè)獨(dú)立的 Bundle, 主工程中獲取到的 Bundle 不是 Framework 的 Bundle挥下。開發(fā)一個(gè)framework揍魂,里面用到圖片,在framework里面使用[NSBundle bundleForClass:[self class]]棚瘟,獲取到的一直是app的資源名现斋,始終拿不到圖片資源,framework類型可能是static library偎蘸,把它改成dynamic library庄蹋,應(yīng)該就可以了。
- Image.bundle 中的圖片加載
NSBundle*bundle = [NSBundle bundleForClass:[self class]];
UIImage *image = [UIImage imageNamed:@"Image.bundle/image" inBundle:bundle compatibleWithTraitCollection:nil];
- Images.xcassets 中的圖片加載
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
UIImage *image = [UIImage imageNamed:@"image" inBundle:bundle compatibleWithTraitCollection:nil];
最后迷雪,加載Framework和bundle中的本地html文件時(shí)限书,如果不顯示css和img,不能跳轉(zhuǎn)章咧,說明找不到它們的路徑倦西。
// framework中html文件的路徑
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
//bundle中html文件的路徑
NSString *path = [[NSBundle mainBundle] pathForResource:@"my" ofType:@"bundle"];
NSBundle *myBundle = [NSBundle bundleWithPath:path];
//加載baseURL
NSString *path = [bundle bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[self.webView loadHTMLString:oriStr baseURL:baseURL];