如果將資源文件/文件夾拖入項(xiàng)目梦鉴,那么會(huì)Xcode彈出一個(gè)窗口:
意思是說是否要在項(xiàng)目目錄下復(fù)制資源崇渗。
如果選中Copy items if needed巡通,那么在項(xiàng)目目錄下(這是說的是真實(shí)目錄膛虫,不是Xcode左側(cè)那個(gè)),會(huì)拷貝一份與拖入的資源相同的資源躏吊。
如果未選中氛改,則不會(huì)進(jìn)行拷貝,而是對拖入的資源進(jìn)行引用比伏。
這與在代碼中進(jìn)行傳值和傳址很像胜卤。如果選中,則像傳值赁项,會(huì)拷貝一份葛躏,與原來的資源互不影響;如果未選中悠菜,則像傳址舰攒,相當(dāng)于對原來的資源進(jìn)行引用。
事實(shí)上如果未選中悔醋,會(huì)帶來一些問題摩窃。比如當(dāng)代碼和資源分開(比如不在一個(gè)電腦上),那么對原來資源的引用就失效了芬骄,那么資源也就不能用了猾愿。
并且在刪除項(xiàng)目資源的時(shí)候也要注意鹦聪。當(dāng)刪除資源時(shí),會(huì)彈出一個(gè)窗口匪蟀,讓我們選擇是刪除引用還是移到垃圾箱椎麦。
如果選中Copy items if needed,那么會(huì)有一份拷貝材彪,所以我們?nèi)绻霃氐讋h除,那么要選擇移到垃圾箱琴儿,這樣無論在Xcode左側(cè)的導(dǎo)航里還是真正的項(xiàng)目目錄里段化,都將資源刪除了。如果選擇了刪除引用造成,那么只會(huì)刪除Xcode左側(cè)導(dǎo)航的資源名稱显熏,而資源的拷貝還存在于項(xiàng)目的真實(shí)目錄中。
如果未選中Copy items if needed晒屎,那么如果想正確刪除喘蟆,應(yīng)該是選擇刪除引用,這樣這個(gè)項(xiàng)目就不再對原來的資源進(jìn)行引用鼓鲁。但是如果選擇了移到垃圾箱蕴轨,那么會(huì)將原來的資源也一起刪除,即使它并不在你的項(xiàng)目目錄里骇吭。要慎重橙弱。
Added folders:
如果是文件,那么無論選擇Create groups還是Create folder references都是一樣的燥狰。
如果是文件夾:
如果選擇Create groups棘脐,那么說明在真實(shí)的項(xiàng)目目錄里面(MainBundle),并不會(huì)創(chuàng)建文件夾龙致。比如拖進(jìn)一個(gè)文件夾蛀缝,里面有兩張圖片還有一個(gè)子文件夾,子文件夾里面還有一張圖片目代,如果選擇了Create groups屈梁,那么這個(gè)結(jié)構(gòu)在Xcode左側(cè)是一致的,但是在項(xiàng)目目錄里面像啼,并沒有創(chuàng)建文件夾俘闯,直接是三張圖片。如果用imageNamed:這個(gè)方法忽冻,可以直接用圖片的名字真朗,前面不用加文件夾的名字,因?yàn)閕mageNamed:是看真實(shí)的項(xiàng)目目錄里面的結(jié)構(gòu)僧诚,而不是Xcode左側(cè)的文件結(jié)構(gòu)遮婶。(左側(cè)如果是藍(lán)色文件夾蝗碎,那么是實(shí)體文件夾;如果是黃色文件夾旗扑,那么是虛擬文件夾蹦骑,在真實(shí)的目錄實(shí)際是沒有的。)
如果選擇了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í)際上是將其打包然后安裝辐益,如果沒有選擇這個(gè)選項(xiàng),那么導(dǎo)入的資源將不會(huì)參與打包脱吱。