當(dāng)往工程中加載多個(gè)本地HTML文件時(shí),經(jīng)常會(huì)出現(xiàn)“項(xiàng)目.app”下的包內(nèi)容文件顯示了我們導(dǎo)入的所有的HTML文件瑞你,但是卻沒(méi)有文件夾酪惭,這是以下造成的;
如果將資源文件/文件夾拖入項(xiàng)目者甲,那么會(huì)Xcode彈出一個(gè)窗口:
Destination:
意思是說(shuō)是否要在項(xiàng)目目錄下復(fù)制資源春感。
如果選中Copy items if needed,那么在項(xiàng)目目錄下(這是說(shuō)的是真實(shí)目錄虏缸,不是Xcode左側(cè)那個(gè))鲫懒,會(huì)拷貝一份與拖入的資源相同的資源。
如果未選中刽辙,則不會(huì)進(jìn)行拷貝窥岩,而是對(duì)拖入的資源進(jìn)行引用。
這與在代碼中進(jìn)行傳值和傳址很像宰缤。如果選中颂翼,則像傳值,會(huì)拷貝一份慨灭,與原來(lái)的資源互不影響朦乏;如果未選中,則像傳址氧骤,相當(dāng)于對(duì)原來(lái)的資源進(jìn)行引用呻疹。
事實(shí)上如果未選中,會(huì)帶來(lái)一些問(wèn)題语淘。比如當(dāng)代碼和資源分開(kāi)(比如不在一個(gè)電腦上)诲宇,那么對(duì)原來(lái)資源的引用就失效了,那么資源也就不能用了惶翻。
并且在刪除項(xiàng)目資源的時(shí)候也要注意姑蓝。當(dāng)刪除資源時(shí),會(huì)彈出一個(gè)窗口吕粗,讓我們選擇是刪除引用還是移到垃圾箱纺荧。
如果選中Copy items if needed,那么會(huì)有一份拷貝颅筋,所以我們?nèi)绻霃氐讋h除宙暇,那么要選擇移到垃圾箱,這樣無(wú)論在Xcode左側(cè)的導(dǎo)航里還是真正的項(xiàng)目目錄里议泵,都將資源刪除了占贫。如果選擇了刪除引用,那么只會(huì)刪除Xcode左側(cè)導(dǎo)航的資源名稱(chēng)先口,而資源的拷貝還存在于項(xiàng)目的真實(shí)目錄中型奥。
如果未選中Copy items if needed,那么如果想正確刪除碉京,應(yīng)該是選擇刪除引用厢汹,這樣這個(gè)項(xiàng)目就不再對(duì)原來(lái)的資源進(jìn)行引用。但是如果選擇了移到垃圾箱谐宙,那么會(huì)將原來(lái)的資源也一起刪除烫葬,即使它并不在你的項(xiàng)目目錄里。要慎重凡蜻。
Added folders:
如果是文件搭综,那么無(wú)論選擇Create groups還是Create folder references都是一樣的。
如果是文件夾:
如果選擇Create groups咽瓷,那么說(shuō)明在真實(shí)的項(xiàng)目目錄里面(MainBundle)设凹,并不會(huì)創(chuàng)建文件夾。比如拖進(jìn)一個(gè)文件夾茅姜,里面有兩張圖片還有一個(gè)子文件夾闪朱,子文件夾里面還有一張圖片,如果選擇了Create groups钻洒,那么這個(gè)結(jié)構(gòu)在Xcode左側(cè)是一致的奋姿,但是在項(xiàng)目目錄里面,并沒(méi)有創(chuàng)建文件夾素标,直接是三張圖片称诗。如果用imageNamed:這個(gè)方法,可以直接用圖片的名字头遭,前面不用加文件夾的名字寓免,因?yàn)閕mageNamed:是看真實(shí)的項(xiàng)目目錄里面的結(jié)構(gòu)癣诱,而不是Xcode左側(cè)的文件結(jié)構(gòu)。(左側(cè)如果是藍(lán)色文件夾袜香,那么是實(shí)體文件夾撕予;如果是黃色文件夾,那么是虛擬文件夾蜈首,在真實(shí)的目錄實(shí)際是沒(méi)有的实抡。)
如果選擇了Create folder references,那么會(huì)根據(jù)傳入的文件夾結(jié)構(gòu)欢策,創(chuàng)建藍(lán)色的文件夾吆寨,也就是在真實(shí)的項(xiàng)目目錄里會(huì)創(chuàng)建文件夾。如果此時(shí)用imageNamed:方法踩寇,那么需要加上路徑:
UIImage *image = [UIImage imageNamed: @”Images/image”];
總結(jié)就是如果傳入一個(gè)文件夾資源啄清,Create groups不會(huì)創(chuàng)建真實(shí)文件夾;Create folder references會(huì)創(chuàng)建真實(shí)文件夾姑荷。
Add to targets:
意思是是否將這個(gè)資源包打包到最終的資源包里面盒延。
我們將程序安裝到手機(jī)上,實(shí)際上是將其打包然后安裝鼠冕,如果沒(méi)有選擇這個(gè)選項(xiàng)添寺,那么導(dǎo)入的資源將不會(huì)參與打包。
作者:左岸花不開(kāi)
主要就是我們拖拽進(jìn)工程的文件懈费,在“項(xiàng)目.app”下是創(chuàng)建的虛擬文件夾導(dǎo)致计露。附上一個(gè)demo參考(注:文件拖拽,必須選擇 create folder reference 憎乙,以創(chuàng)建對(duì)應(yīng)的真實(shí)文件夾)票罐。
UIWebView *webView=[[UIWebView alloc] initWithFrame:self.view.frame];
[self.view addSubview:webView];
NSString *path = [[NSBundle mainBundle] resourcePath];//pathForResource:@"index" ofType:@"html"
NSString *path1 =[NSString stringWithFormat:@"%@%@",path,@"/新手幫助/index.html"];
// NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
NSURL *baseURL = [NSURL fileURLWithPath:path1];
// NSString *path2= @"/Users/fgtk/Desktop/HTML_3/HTML_3/新手幫助/index.html";
NSLog(@"%@",path1); //
NSString *html = [NSString stringWithContentsOfFile:path1 encoding:NSUTF8StringEncoding error:nil];
[webView loadHTMLString:html baseURL:baseURL];