原文地址:https://zhanglei.blog.csdn.net/article/details/121673288 [toc] ## 一、前言 應用中某些模塊需要組件化,組件化後的工程最後會做二進位化處理,打包成`.framework`文件。 今天簡單聊一下在主工程或其他組件中是如何訪問自製 ...
原文地址:https://zhanglei.blog.csdn.net/article/details/121673288
目錄一、前言
應用中某些模塊需要組件化,組件化後的工程最後會做二進位化處理,打包成.framework
文件。 今天簡單聊一下在主工程或其他組件中是如何訪問自製組件.framework關聯的bundle
資源文件。
二、訪問應用資源
我們知道蘋果應用是基於沙盒機制, 打包生成.ipa後的資源會被放到沙盒的根目錄下。通常在主工程中我們是這樣訪問資源的:
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"plist"];
沒錯,我們訪問主工程下的資源使用的是
NSBundle *mainBundle = [NSBundle mainBundle];
但如果將自製framework中的資源單獨放到framework中打包時, framework中的代碼在訪問時則不能再使用上面的代碼獲取資源。
三、Framework中的資源存放
圖片是應用中最常用的資源了, 在主工程下我們一般會把圖片資源放到Asset
文件束裡面。 但在自製的Framework中我們如何來管理這些資源呢 ?
通常的做法是自製一個framework用到的.bundle
文件。 操作步驟一般是:
- 創建一個文件目錄
- 將資源文件放到該目錄下
- 重命名文件目錄時添加
.bundle
的擴展名
這時系統會彈出一個提示:
點擊“添加”按鈕,就可以轉成.bundle
文件束。再將此文件拖動到framework工程中即可。
四、訪問Framework中指定的bundle
假設自製Framework中存在一個MyProject.bundle文件,並讀取此文件中的plist 資源:
- (void)loadPlistPath:(NSString *)path {
NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle bundleForClass:[self class]] pathForResource:@"MyProject" ofType:@"bundle"]];
NSString *plistPath = [bundle pathForResource:@"fileName" ofType:@"fileType"];
}
五、訪問bundle中的資源
六、建議Framework與bundle分開存放
更多內容詳見:https://zhanglei.blog.csdn.net/article/details/121673288
本文來自博客園,作者:reyzhang,轉載請註明原文鏈接:https://www.cnblogs.com/reyzhang/p/17610912.html