如果將資源文件/文件夾拖入項(xiàng)目昼蛀,那么會Xcode彈出一個窗口:
Destination:
意思是說是否要在項(xiàng)目目錄下復(fù)制資源棕兼。
如果選中Copy items if needed,那么在項(xiàng)目目錄下(這是說的是真實(shí)目錄抵乓,不是Xcode左側(cè)那個)伴挚,會拷貝一份與拖入的資源相同的資源。
如果未選中灾炭,則不會進(jìn)行拷貝茎芋,而是對拖入的資源進(jìn)行引用。
這與在代碼中進(jìn)行傳值和傳址很像蜈出。如果選中田弥,則像傳值,會拷貝一份铡原,與原來的資源互不影響偷厦;如果未選中,則像傳址燕刻,相當(dāng)于對原來的資源進(jìn)行引用只泼。
事實(shí)上如果未選中,會帶來一些問題卵洗。比如當(dāng)代碼和資源分開(比如不在一個電腦上)请唱,那么對原來資源的引用就失效了,那么資源也就不能用了。
并且在刪除項(xiàng)目資源的時候也要注意十绑。當(dāng)刪除資源時聚至,會彈出一個窗口,讓我們選擇是刪除引用還是移到垃圾箱本橙。
如果選中Copy items if needed扳躬,?那么會有一份拷貝,所以我們?nèi)绻霃氐讋h除勋功,那么要選擇移到垃圾箱坦报,這樣無論在Xcode左側(cè)的導(dǎo)航里還是真正的項(xiàng)目目錄里,都將資源刪除了狂鞋。如果選擇了刪除引用片择,那么只會刪除Xcode左側(cè)導(dǎo)航的資源名稱,而資源的拷貝還存在于項(xiàng)目的真實(shí)目錄中骚揍。
如果未選中Copy items if needed字管,那么如果想正確刪除,應(yīng)該是選擇刪除引用信不,這樣這個項(xiàng)目就不再對原來的資源進(jìn)行引用嘲叔。但是如果選擇了移到垃圾箱,那么會將原來的資源也一起刪除抽活,即使它并不在你的項(xiàng)目目錄里硫戈。要慎重。
Added folders:
如果是文件下硕,那么無論選擇Create groups還是Create folder references都是一樣的丁逝。
如果是文件夾:
如果選擇Create groups,那么說明在真實(shí)的項(xiàng)目目錄里面(MainBundle)梭姓,并不會創(chuàng)建文件夾霜幼。比如拖進(jìn)一個文件夾,里面有兩張圖片還有一個子文件夾誉尖,子文件夾里面還有一張圖片罪既,如果選擇了Create groups,那么這個結(jié)構(gòu)在Xcode左側(cè)是一致的铡恕,但是在項(xiàng)目目錄里面琢感,并沒有創(chuàng)建文件夾,直接是三張圖片没咙。如果用imageNamed:這個方法猩谊,可以直接用圖片的名字,前面不用加文件夾的名字祭刚,因?yàn)閕mageNamed:是看真實(shí)的項(xiàng)目目錄里面的結(jié)構(gòu)牌捷,而不是Xcode左側(cè)的文件結(jié)構(gòu)墙牌。(左側(cè)如果是藍(lán)色文件夾,那么是實(shí)體文件夾暗甥;如果是黃色文件夾喜滨,那么是虛擬文件夾,在真實(shí)的目錄實(shí)際是沒有的撤防。)
-
如果選擇了Create folder references虽风,那么會根據(jù)傳入的文件夾結(jié)構(gòu),創(chuàng)建藍(lán)色的文件夾寄月,也就是在真實(shí)的項(xiàng)目目錄里會創(chuàng)建文件夾辜膝。如果此時用imageNamed:方法,那么需要加上路徑:
UIImage *image = [UIImage imageNamed: @"Images/image"];
總結(jié)就是如果傳入一個文件夾資源漾肮,Create groups不會創(chuàng)建真實(shí)文件夾厂抖;Create folder references會創(chuàng)建真實(shí)文件夾。
Add to targets:
意思是是否將這個資源包打包到最終的資源包里面克懊。
我們將程序安裝到手機(jī)上忱辅,實(shí)際上是將其打包然后安裝,如果沒有選擇這個選項(xiàng)谭溉,那么導(dǎo)入的資源將不會參與打包墙懂。