今年接手了一個新項目,據(jù)說他們是從外包手里把代碼接過來沒多長時間。說實話已經(jīng)無力吐槽了,對我這種有強迫癥的人來說,他們那些多余的文件,和多余的圖片讓我一直有一種亂七八糟的感覺。經(jīng)過一段時間的熟悉,開啟了我對這個工程的改造之旅。我感覺有必要寫下來的就是我對多余圖片和重名的沒有直接刪除的文件的處理吧。這個東西沒什么技術(shù)含量,就是個人感覺還是記錄下來比較好。
1.對重名的文件的處理。
我感覺這個問題也不是誰都能遇到的,也就我接手的這個奇葩工程有。當時是想寫個shell腳本查下都那個幾個文件重復了,然后再驗證下用的那個,把其余的刪除了。無奈,水平太低了,沒寫出來。后來一想OC也可以做同樣的事啊,果斷OC走起,代碼如下。
NSFileManager *fileManager = [NSFileManager defaultManager]; NSError *error = nil; NSArray *fileList = [[NSArray alloc] init]; //fileList便是包含有該文件夾下所有文件的文件名及文件夾名的數(shù)組 fileList = [fileManager subpathsOfDirectoryAtPath:@"/Users/Tony/Desktop/1.3.1/cake" error:&error]; for (NSString * str in fileList) { if ([str containsString:@"/"]) { NSString * temp = [str componentsSeparatedByString:@"/"].lastObject; if ([temp containsString:@".h"]) { for (NSString * str2 in fileList) { if ([str isEqualToString:str2]) { continue; }else{ NSString * temp2 = [str2 componentsSeparatedByString:@"/"].lastObject; if ([temp isEqualToString:temp2]) { NSLog(@"------------ str %@ ============= str2 %@ ---",str,str2); NSLog(@"~~~~~~~~~~~~~~~~~~~"); } } } } }else{ } }
這個程序呢有一個bug,我舉例說下吧,就是第一個文件跟第十個文件重復的時候,這個結(jié)果會輸出兩遍。解決這個的方法呢就是當查出那兩個或幾個文件重名的話把他們從數(shù)組里刪除。在這里面呢我有個感觸,可能大部分程序員跟我差不多,想追求點高大山,追求點全面,那種語言都想嘗試一下。其實效率高才是硬道理。如果本來就是玩玩的就無所謂了。
2.處理多余圖片
這個呢我首先想到的就是找個第三方了,我覺得肯定是有的。因為這個問題遇到的人肯定就很多了。在群友的幫助下找到了一個東西:unused。
unused:一個開源第三方,用來檢測工程里沒有用到的圖片。下載下來的話就是一個mac工程,自己用xcode運行一下就好了。
下載地址:http://jeffhodnett.github.io/Unused/
檢測的結(jié)果還可以導出成txt文件,很好用。
當你管理圖片的是Images.xcassets的話就要小心了,不要一沖動把所有檢測出來的都刪除了。我感覺找個軟件的原理就是查找圖片的名字有沒有出現(xiàn)在你的工程代碼里。你用Images.xcassets管理圖片的話可以不用改圖片的名字,直接拖進去就好了。這個就造成你在代碼里這個圖片的名字跟圖片本身的名字是不一致的。例如,當美術(shù)給你圖片的是隨便起了名叫111.png,這個圖片在Images.xcassets里叫cake.png,當你直接把這個文件拖到對應(yīng)的圖片位置的時候程序會111.png當做cake.png來用,但是unused是不會這么認為的,它就會把111.png當做未使用圖片輸出出來。