iOS生成Bundle包-引入bundle-使用bundle

在我們使用第三方框架時(shí),常??吹絏XX.bundle的文件。

我們找到該文件,顯示包內(nèi)容,大致看到很多資源文件:圖片、配置文本、XIB文件……

什么是Bundle文件?

簡(jiǎn)單理解,就是資源文件包。我們將許多圖片、XIB、文本文件組織在一起,打包成一個(gè)Bundle文件。方便在其他項(xiàng)目中引用包內(nèi)的資源。

Bundle文件的特點(diǎn)?

Bundle是靜態(tài)的,也就是說(shuō),我們包含到包中的資源文件作為一個(gè)資源包是不參加項(xiàng)目編譯的。也就意味著,bundle包中不能包含可執(zhí)行的文件。它僅僅是作為資源,被解析成為特定的2進(jìn)制數(shù)據(jù)。

制作Bundle

1.新建bundle項(xiàng)目

2.添加需要的圖片

加入你需要編譯在bundle中的資源文件。

當(dāng)然,默認(rèn)的配置也是可以的,如果你需要特定的優(yōu)化或者特定的路徑配置,你可以進(jìn)行下面第3步的配置。

3.你可以對(duì)編譯的bundle進(jìn)行一些可選的設(shè)置(可選)

a.作為資源包,僅僅需要編譯就好,無(wú)需安裝相關(guān)的配置。

b.同樣要?jiǎng)h除安裝路徑。

c.該資源包的pch文件和strings文件是可以刪除的。

4.最好狀態(tài)下,要編譯出適用與iPhone的bundle文件。

項(xiàng)目集成bundle

使用bundle就非常的easy了,將編譯好的XXXX.bundle 文件直接加入到需要的項(xiàng)目中。省略了!

使用bundle中的資源

將要使用的bundle集成到項(xiàng)目中后,就可以使用了。需要注意的就是,bundle是靜態(tài)的,不進(jìn)行編譯的資源文件。所以,要使用bundle中的資源,就需要找到相應(yīng)的資源路徑。

這里廢話就不多說(shuō)了,貼代碼!

VC獲得bundle中的資源

NSString* bundlePath = [[NSBundlemainBundle]pathForResource: @"MyBundle"ofType:@"bundle"];

NSBundle*resourceBundle =[NSBundlebundleWithPath:bundlePath];

UIViewController*vc =[[UIViewControlleralloc]initWithNibName:@"vc_name"bundle:resourceBundle];

圖片獲得bundle中的資源

UIImageView*imgView=[[UIImageViewalloc]initWithFrame:CGRectMake(50,50,50,50)];

UIImage*image = [UIImage

imageNamed:@"MyBundle.bundle/img_collect_success"];

[imgViewsetImage:image];

或者

UIImageView*imgView=[[UIImageViewalloc]initWithFrame:CGRectMake(50,50,50,50)];

NSString*imgPath= [bundlePathstringByAppendingPathComponent:@"img_collect_success.png"];

UIImage*image_1=[UIImageimageWithContentsOfFile:imgPath];

[imgViewsetImage:image_1];

當(dāng)然,可以寫(xiě)成預(yù)編譯語(yǔ)句:

#define MYBUNDLE_NAME @"MyBundle.bundle"

#define MYBUNDLE_PATH [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent: MYBUNDLE_NAME]

#define MYBUNDLE [NSBundle bundleWithPath: MYBUNDLE_PATH]

希望對(duì)你有所幫助!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ![Uploading 002glVnxty6GZIOHgb072&690_708761.jpg . . .]什么...
    大也閱讀 1,493評(píng)論 0 51
  • 框架捆綁 框架是封裝動(dòng)態(tài)共享庫(kù)和支持該庫(kù)所需的資源文件的分層目錄??蚣鼙鹊湫偷膭?dòng)態(tài)共享庫(kù)提供了一些優(yōu)勢(shì),因?yàn)樗鼈優(yōu)?..
    nicedayCoco閱讀 1,810評(píng)論 0 2
  • 介紹 捆綁是macOS和iOS中用于封裝代碼和資源的基礎(chǔ)技術(shù)。軟件包通過(guò)為所需資源提供已知位置來(lái)簡(jiǎn)化開(kāi)發(fā)人員體驗(yàn),...
    nicedayCoco閱讀 1,390評(píng)論 0 1
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,227評(píng)論 25 708
  • 1、人們面臨權(quán)衡取舍。2、某種東西的成本,是為了得到這種東西而放棄的東西。機(jī)會(huì)成本:是為了得到某種東西而放棄的東西...
    Stroman閱讀 374評(píng)論 0 0

友情鏈接更多精彩內(nèi)容