ios工程重构-重名文件多余图片删除

今年接手了一个新项目,据说他们是从外包手里把代码接过来没多长时间。说实话已经无力吐槽了,对我这种有强迫症的人来说,他们那些多余的文件,和多余的图片让我一直有一种乱七八糟的感觉。经过一段时间的熟悉,开启了我对这个工程的改造之旅。我感觉有必要写下来的就是我对多余图片和重名的没有直接删除的文件的处理吧。这个东西没什么技术含量,就是个人感觉还是记录下来比较好。

1.对重名的文件的处理。

我感觉这个问题也不是谁都能遇到的,也就我接手的这个奇葩工程有。当时是想写个shell脚本查下都那个几个文件重复了,然后再验证下用的那个,把其余的删除了。无奈,水平太低了,没写出来。后来一想OC也可以做同样的事啊,果断OC走起,代码如下。
NSFileManager *fileManager = [NSFileManager defaultManager]; NSError *error = nil; NSArray *fileList = [[NSArray alloc] init]; //fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组 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,我举例说下吧,就是第一个文件跟第十个文件重复的时候,这个结果会输出两遍。解决这个的方法呢就是当查出那两个或几个文件重名的话把他们从数组里删除。在这里面呢我有个感触,可能大部分程序员跟我差不多,想追求点高大山,追求点全面,那种语言都想尝试一下。其实效率高才是硬道理。如果本来就是玩玩的就无所谓了。

2.处理多余图片

这个呢我首先想到的就是找个第三方了,我觉得肯定是有的。因为这个问题遇到的人肯定就很多了。在群友的帮助下找到了一个东西:unused。
unused:一个开源第三方,用来检测工程里没有用到的图片。下载下来的话就是一个mac工程,自己用xcode运行一下就好了。
下载地址:http://jeffhodnett.github.io/Unused/
检测的结果还可以导出成txt文件,很好用。
当你管理图片的是Images.xcassets的话就要小心了,不要一冲动把所有检测出来的都删除了。我感觉找个软件的原理就是查找图片的名字有没有出现在你的工程代码里。你用Images.xcassets管理图片的话可以不用改图片的名字,直接拖进去就好了。这个就造成你在代码里这个图片的名字跟图片本身的名字是不一致的。例如,当美术给你图片的是随便起了名叫111.png,这个图片在Images.xcassets里叫cake.png,当你直接把这个文件拖到对应的图片位置的时候程序会111.png当做cake.png来用,但是unused是不会这么认为的,它就会把111.png当做未使用图片输出出来。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /**ios常见的几种加密方法: 普通的加密方法是讲密码进行加密后保存到用户偏好设置( [NSUserDefaul...
    彬至睢阳阅读 3,017评论 0 7
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,217评论 30 472
  • 1、禁止手机睡眠 [UIApplicationsharedApplication].idleTimerDisabl...
    小热狗阅读 928评论 0 2
  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 1,144评论 1 6
  • 案例一, 老师,我觉得我有拖延症, 有什么表现呢? 我去见客户都拖拖拉拉,搞得迟到, 见大客户也如此吗? 不会。。...
    木易木杉阅读 734评论 1 3