【iOS Tip】將圖片、聲音、nib(xib)等資源文件打包為Bundle

在編寫第三方庫時, 如果需要用到一些圖片、聲音資源, 甚至是nib(xib), 就需要把這些資源打包成一個bundle. 一開始在其他第三方庫中看到bundle的時候, 覺得它好像是一個很高級的東西. 但是事實上, bundle就是一個普通得不能再普通的文件夾, 只是加上了.bundle后綴, 一下子就高大上了起來.
加上.bundle后綴的文件夾, 會被Mac識別為一個包. 將文件夾以包的形式存在, 可以當作一個整體方便地移動, 也可以讓別人不至于不小心改動到庫所依賴的資源.

步驟

  1. 將資源放到文件夾中, 重命名文件夾為xxx.bundle

  2. 若bundle中有使用到xib文件, 需要使用命令把xib文件轉換為nib文件:

$ ibtool --errors --warnings --output-format human-readable-text --compile file.nib file.xib

*如果不轉換, 讀取的時候會導致如下錯誤:

Terminating app due to uncaught exception 
'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle:
 'NSBundle </var/mobile/Applications/C6718DB8-0C0F-4D38-84E6-55C145279957
/Documents/asset-4.bundle> (not yet loaded)' with name 'file''
  1. 把bundle拖進工程, 此時通過以下方法即可取到ZYBannerView.bundle
NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"xxx" ofType:@"bundle"]];
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容