IOS的Bundle資源束製作

2021-06-28 05:02:52 字數 2133 閱讀 2776

bundle製作其實是前面製作靜態庫的乙個衍生。

在靜態庫的製作中,很多時候我們的靜態庫也是帶著檔案,和多**資源的。

若只是直接加入到專案中也是可以,但是,考慮到方便管理(方便外掛程式使用者的管理),我們希望把外掛程式的資源檔案打成乙個包來管理。

比如,我們專案中有用到的銀聯支付外掛程式。

這樣我們直接新增***x.bundle檔案到專案中就可以,這樣在以後如果要刪除的話直接刪除乙個***.bundle檔案就行了。

當然有人也會說,那我直接在專案中新建乙個group來管理也是一樣的容易。

此刻,我只能很裝逼的說一句:這樣,顯得專業點麼~。

你看three20啊,銀聯啊等等。整體專案目錄相對看起來簡約點。

bundle的製作。

1.新建乙個資料夾,然後將資料夾命名修改你要的資料夾名,並且加上字尾:***.bundle。

然後你就會看到資料夾變成了乙個我們常見的bundle樣式的資料夾。

2.加入檔案資源,此時為了方便管理,我們最好現在裡面新建3種資源的資料夾

當然了,不建立也沒關係,但是這個images資料夾最好建立,因為,我們會把所有的資源放在這裡來方便管理。

然後新增點到images中。

3.把bundle檔案加入到專案中

4.讀取和使用檔案。

[cpp]view plain

copy

uilabel *la = [[uilabel alloc] initwithframe:cgrectmake(50, 100, 50, 50)];  

la.text = @"陳凱"

此時,因為以前我們獲取uiimage物件大部分都是直接使用的api為:

[uiimageimagenamed:

@"android.png"]

方法其實也是通過相對路徑給我們找到了資源。

但是在我們自己製作的bundle資料夾的資源則不能使用該方法來找到了。

我們每次指定需要傳入乙個很長的位址,覺得比較麻煩。但是我們會發現,都是在***.bundle/images下面。

那麼我們也可以使用巨集或是類別來定義乙個方法來簡單到和[uiimageimagenamed:

@"android.png"

]一樣。只需乙個檔名就行了。

巨集的表現可以參考three20下的

[cpp]view plain

copy

ttimage(@

"bundle:"

)  

返回的就是乙個image物件。

three20框架中其實是使用了scheme的思想,bundle://和document;//來載入不同資料夾下的資源。

載入自定義bundle資料夾下的最後就是根據

先獲取應用的絕對路徑 

mainbundle_path = 

[nsbundlemainbundle] resourcepath] ;

然後擷取了bundle://後面的path 和mainbundle_path組裝成最後的位址。

對於我們,簡單的實現可以直接使用類別

[cpp]view plain

copy

-(uiimage*) imagesnamedfromcustombundle:(nsstring *)name    

建立乙個uiimage的類別,新增這個擴充套件的方法。

end

IOS的Bundle資源束製作

bundle製作其實是前面製作靜態庫的乙個衍生。在靜態庫的製作中,很多時候我們的靜態庫也是帶著檔案,和多 資源的。若只是直接加入到專案中也是可以,但是,考慮到方便管理 方便外掛程式使用者的管理 我們希望把外掛程式的資源檔案打成乙個包來管理。比如,我們專案中有用到的銀聯支付外掛程式。這樣我們直接新增 ...

IOS的Bundle資源束製作

bundle製作其實是前面製作靜態庫的乙個衍生。在靜態庫的製作中,很多時候我們的靜態庫也是帶著檔案,和多 資源的。若只是直接加入到專案中也是可以,但是,考慮到方便管理 方便外掛程式使用者的管理 我們希望把外掛程式的資源檔案打成乙個包來管理。比如,我們專案中有用到的銀聯支付外掛程式。這樣我們直接新增 ...

iOS中bundle的意義

什麼是bundle?bundle與普通的資料夾有什麼區別?1.cocoa touch框架提供了乙個介面,可以很方便的訪問bundle及其內部資源。2.如果將bundle加入了xcode中,則在本地目錄下任意更改bundle中的內容,xcode中的bundle都會察覺到,並且將變化內容同步進來。如果將...