swift bundle的使用

今天在做iOS加載本地H5時(shí),發(fā)現(xiàn)自己不會(huì)取工程中的文件,真是頭疼呀!于是研究了下bundle的用法,可算解決了。其中主要借鑒下面這篇文章:

https://blog.csdn.net/jingfa1993/article/details/79758849

看了之后有個(gè)小小的感悟:

? ? 1、我們的工程其本身就是在一個(gè)bundle之下,叫做mainBundle,swift中獲取方式就是Bundle.main。

? ? 2、Bundle下可以新建有文件、文件夾。(猜測(cè)可能還可以有bundle,因?yàn)閙ainbundle是一個(gè)bundle,我們可以在其下新建一個(gè)bundle)

? ? 3、如果有大量的外部文件最好放在Bundle中;

開(kāi)發(fā)中需要解決的文件:

? ? 1、如果把外部文件導(dǎo)入工程中?

? ? 2、怎樣獲取到我們想要的文件;

首先我們來(lái)看下如何導(dǎo)入外部文件到工程中?主要針對(duì)的是多級(jí)目錄的文件夾


導(dǎo)入彈框

1、重點(diǎn)講一下是選“Create groups”還是“Create folder references”?Groups的概念是一個(gè)“分組”,而不是文件夾,他其實(shí)對(duì)文件所在位置沒(méi)什么要求,你可以看做是完全為了讓我們開(kāi)發(fā)者看得方便而分的小組,其實(shí)編譯器不管這個(gè)的,故iOS要求一個(gè)工程下文件名不能相同。而選擇“Create folder references”,在iOS看來(lái),這不是一個(gè)代碼文件,我不會(huì)對(duì)它進(jìn)行編譯。

明白了兩者之間的區(qū)別,就很容易選擇了,如果我們引用的是代碼,需要編譯的,就選“Create groups”,如果是資源文件,不用編譯就選“Create folder references”,groups是黃色的文件夾,references是藍(lán)色的文件夾。

2、自定義bundle的使用。

自定義bundle可以讓工程看起來(lái)更舒服,畢竟這些都是資源文件,我們放在bundle里面是不是更好?

如何創(chuàng)建bundle呢:如圖new file->起個(gè)名字->完成


如果你用Bundle導(dǎo)入資源的話(huà),就不需要問(wèn)“Create groups”還是“Create folder references”,它里面放的就是資源文件,不存在還要編譯

講完了如何導(dǎo)入資源文件,接下來(lái)講講如何獲取資源文件


1、獲取mainBundle:Bundle.main(心里知道就行)

2、獲取到自定義bundle的路徑

????let htmlBundlePath =Bundle.main.path(forResource:"HTMLBundle", ofType:"bundle")

? ? 代碼解讀:獲取mainbundle下名字為HTMLBundle、類(lèi)型為bundle的文件的路徑

3、得到自定義bundle:

? ? let htmlBundle =Bundle.init(path: htmlBundlePath)

4、從bundle中取出想要的文件:

? ? 如我要獲取到budle下xuqiu文件夾下的add文件夾下的fwxm.html文件:

? ? 先獲取文件路徑

? ??let path = htmlBundle.path(forResource:"fwxm", ofType:"html", inDirectory:"xuqiu/add"

? ? 在通過(guò)路徑獲取文件:(根據(jù)文件不同,獲取方式不同,下面展示html的獲取方式)

? ? let url =?URL.init(fileURLWithPath: path)

????view.loadFileURL(url, allowingReadAccessTo:url)

?著作權(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)容

  • UIWebView加載本地HTML5文件一.準(zhǔn)備HTML文件及其資源文件使用UIWebView加載本地的HTML文...
    wzf_taker閱讀 1,266評(píng)論 0 3
  • 一、 WebView簡(jiǎn)單介紹 WebView是iOS中比較常用的一個(gè)控件,特別是現(xiàn)在app不好推廣,下載成本高的時(shí)...
    Onegeng閱讀 13,787評(píng)論 1 11
  • 今天就本周作業(yè)的讀取txt文件查找了的一些方法,如下: //讀取文本內(nèi)容NSError *error;NSStri...
    霏誠(chéng)拜咬o閱讀 754評(píng)論 0 0
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,694評(píng)論 19 139
  • 概述 摘要:從制作一個(gè)看圖app和了解關(guān)鍵概念開(kāi)始swift編程。 概念:Constants and variab...
    lbhw閱讀 658評(píng)論 0 1

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