iOS:xcode 中Groups vs Folder References
前言:當xcode新增資源的時候,有倆種引用方式,分別為Groups 和 Folder Reference倆種方式。它們在xcode中顯示也不同,一個是yellow,一個是blue。
Groups
A.Xcode只是儲存一個對檔案(夾)的引用,在xcode中對檔案(夾)操作各種操作,只是影響xcode的目錄結構,.xcodeproj檔案而已,對它的實際儲存位置幾乎不做影響(如果引用的時候選了copy選項,實際儲存在專案工程目錄裡,也沒有影響),group是xcode內部的組織形式(目錄結構)。
1.在xcode中隨意移動Groups的檔案(夾),只是它在xcode中目錄結構改變了,它的實際儲存位置不受影響,原來儲存什麼位置,還是那個位置。
2.在xcode中修改Groups的資料夾的名字,group名字變了,資料夾的實際儲存名字不變,但如果修改Group的檔案的名字,實際儲存檔案的名字會變。
3.不管該group在xcode中如何移動,它對應的實際資料夾不變。
4.Group的資料夾都會對應盤上的一個實際儲存的資料夾位置。往這個group中新新增檔案,該檔案會儲存到group對應的實際資料夾中。
在哪個group1中裡面new group,新的group對應的資料夾就是它所屬group1對應的資料夾。比如在xcode根目錄new group,group對應的就是project目錄。往group裡面新增檔案就是往project目錄裡新增檔案。在xcode target名字group中new group,對應的就是target的根資料夾。
往xcode中新增資料夾同時建立的group,對應的就是該資料夾。該資料夾所儲存位置就是所屬group對應的資料夾。
B.Group的引用方式,所屬的檔案都會參與編譯(程式碼檔案),資原始檔(圖片等)會copy到bundle包中(Xcode flattens the group hierarchy and dumps all the files in the top level of the product’s bundle. )。
問題:
1.當有多個target的時候,必須 set the proper target membership for each file。
2.在finder中,專案的資料夾中可能有資料夾A,但是在x'code project中並沒有資料夾A,Because of the mismatch, locating files can get confusing。
3.If you move a file or rename it outside of Xcode, the reference breaks and the file turns red. File management becomes a real pain。
優點:
1.可以自由的選擇which files on disk 新增到xcode中
2.對target membership有個較好控制
3.[UIImage imageNamed:@"GoPago"] instead of [UIImage imageNamed:@"Images/Icons/GoPago"]; 注意,不同的檔案的名字衝突。