前言
iOS代码量的统计,其实就是代码 行数
的统计,其中你自己写的代码 不包括
用 pods
集成第三方
库的`代码。
行数统计方式
- 【方法一】:查看每一行的行数,再得出总行数,其中不包括空行,但是包括注释。
- 【方法二】:直接查看总行数,没有中间过程,不包括空行,但是包括注释。
方法一:
打开终端
cd 进入项目目录(我的是Classes)
输入命令 find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" ")" -print | xargs wc -l
得出结果,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| mac@MacdeMBP ERBC % cd /Users/mac/Desktop/ERBC/ERBC/Classes mac@MacdeMBP Classes % find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" ")" -print | xargs wc -l 49 ./UI(用户界面)/Home(首页)/ERHomeVC.m 17 ./UI(用户界面)/Home(首页)/ERHomeVC.h 32 ./UI(用户界面)/Base(基础)/NavBar/ERNavgationC.m 17 ./UI(用户界面)/Base(基础)/NavBar/ERNavgationC.h 22 ./UI(用户界面)/Base(基础)/TabBar/Controller/ERTabBarC.h 92 ./UI(用户界面)/Base(基础)/TabBar/Controller/ERTabBarC.m 124 ./UI(用户界面)/Base(基础)/TabBar/View/ERTabBarBtn.m 25 ./UI(用户界面)/Base(基础)/TabBar/View/ERTabBarV.h 18 ./UI(用户界面)/Base(基础)/TabBar/View/ERTabBarBadgeBtn.h 25 ./UI(用户界面)/Base(基础)/TabBar/View/ERTabBarBtn.h 35 ./UI(用户界面)/Base(基础)/TabBar/View/ERTabBarBadgeBtn.m 98 ./UI(用户界面)/Base(基础)/TabBar/View/ERTabBarV.m 23 ./Other(其他)/ControlCat(控件分类)/NSDictionary/NSDictionary+ZJ.h 68 ./Other(其他)/ControlCat(控件分类)/NSDictionary/NSDictionary+ZJ.m 18 ./Other(其他)/ControlCat(控件分类)/UIScrollView/UIScrollView+ZJ.h 29 ./Other(其他)/ControlCat(控件分类)/UIScrollView/UIScrollView+ZJ.m 32 ./Other(其他)/ControlCat(控件分类)/UILabel/UILabel+ZJ.h 93 ./Other(其他)/ControlCat(控件分类)/UILabel/UILabel+ZJ.m 127 ./Other(其他)/ControlCat(控件分类)/UIButton/UIButton+ZJ.m 42 ./Other(其他)/ControlCat(控件分类)/UIButton/UIButton+ZJ.h 66 ./Other(其他)/ControlCat(控件分类)/UIColor/UIColor+ZJ.m 23 ./Other(其他)/ControlCat(控件分类)/UIColor/UIColor+ZJ.h 123 ./Other(其他)/ControlCat(控件分类)/UIView/UIView+Frame.m 46 ./Other(其他)/ControlCat(控件分类)/UIView/UIView+ZJ.h 40 ./Other(其他)/ControlCat(控件分类)/UIView/UIView+Frame.h 101 ./Other(其他)/ControlCat(控件分类)/UIView/UIView+ZJ.m 45 ./Other(其他)/ControlCat(控件分类)/NSNull/NSNull+ZJ.m 17 ./Other(其他)/ControlCat(控件分类)/NSNull/NSNull+ZJ.h 22 ./Other(其他)/ControlCat(控件分类)/PinYin/PinYin.h 246 ./Other(其他)/ControlCat(控件分类)/PinYin/PinYin.m 50 ./Other(其他)/ControlCat(控件分类)/KVO/KVO+ZJ.m 19 ./Other(其他)/ControlCat(控件分类)/KVO/KVO+ZJ.h 76 ./Other(其他)/ControlCat(控件分类)/NSMutableDictionary/NSMutableDictionary+ZJ.m 23 ./Other(其他)/ControlCat(控件分类)/NSMutableDictionary/NSMutableDictionary+ZJ.h 90 ./Other(其他)/ControlCat(控件分类)/UITextView/UITextView+ZJ.m 28 ./Other(其他)/ControlCat(控件分类)/UITextView/UITextView+ZJ.h 19 ./Other(其他)/ControlCat(控件分类)/UICollectionView/UICollectionViewFlowLayout+ZJ.h 18 ./Other(其他)/ControlCat(控件分类)/UICollectionView/UICollectionView+ZJ.m 25 ./Other(其他)/ControlCat(控件分类)/UICollectionView/UICollectionViewFlowLayout+ZJ.m 19 ./Other(其他)/ControlCat(控件分类)/UICollectionView/UICollectionView+ZJ.h 18 ./Other(其他)/ControlCat(控件分类)/UIImageView/UIImageView+ZJ.h 23 ./Other(其他)/ControlCat(控件分类)/UIImageView/UIImageView+ZJ.m 248 ./Other(其他)/ControlCat(控件分类)/NSString/NSString+ZJ.m 58 ./Other(其他)/ControlCat(控件分类)/NSString/NSString+ZJ.h 19 ./Other(其他)/ControlCat(控件分类)/UITableView/UITableView+ZJ.h 32 ./Other(其他)/ControlCat(控件分类)/UITableView/UITableView+ZJ.m 23 ./Other(其他)/ControlCat(控件分类)/NSArry/NSArray+ZJ.h 82 ./Other(其他)/ControlCat(控件分类)/NSArry/NSArray+ZJ.m 23 ./Other(其他)/ControlCat(控件分类)/NSMutableArray/NSMutableArray+ZJ.h 114 ./Other(其他)/ControlCat(控件分类)/NSMutableArray/NSMutableArray+ZJ.m 18 ./Other(其他)/ControlCat(控件分类)/NSTimer/NSTimer+ZJ.h 22 ./Other(其他)/ControlCat(控件分类)/NSTimer/NSTimer+ZJ.m 40 ./Other(其他)/ControlCat(控件分类)/NSObject/NSObject+ZJ.m 26 ./Other(其他)/ControlCat(控件分类)/NSObject/NSObject+ZJ.h 22 ./Other(其他)/ControlCat(控件分类)/UITextField/UITextField+ZJ.h 57 ./Other(其他)/ControlCat(控件分类)/UITextField/UITextField+ZJ.m 68 ./Other(其他)/ThirdTool(三方工具)/AFNetworkMonitor(网络监测)/AFNetworkMonitorTool.m 27 ./Other(其他)/ThirdTool(三方工具)/AFNetworkMonitor(网络监测)/AFNetworkMonitorTool.h 57 ./Other(其他)/GlobalTool(全局工具)/ZJ(全局方法)/ZJ.h 350 ./Other(其他)/GlobalTool(全局工具)/ZJ(全局方法)/ZJ.m 20 ./Other(其他)/GlobalView(全局视图)/PlaceholderView(占位视图)/ERPlaceholderV.h 44 ./Other(其他)/GlobalView(全局视图)/PlaceholderView(占位视图)/ERPlaceholderV.m 64 ./Define(宏定义)/ERMixDefine.h 27 ./Define(宏定义)/ERColorDefine.h 13 ./Define(宏定义)/ERH5Define.h 83 ./Define(宏定义)/ERImportDefine.h 13 ./Define(宏定义)/ERNotificationDefine.h 15 ./Define(宏定义)/ERImageDefine.h 13 ./Define(宏定义)/ERHttpsDefine.h 16 ./Define(宏定义)/ERFontDefine.h 35 ./Applegate(主程序)/LanuchManager(启动管理)/ERLanuchManager.m 22 ./Applegate(主程序)/LanuchManager(启动管理)/ERLanuchManager.h 14 ./Applegate(主程序)/AppDelegate/AppDelegate.h 27 ./Applegate(主程序)/AppDelegate/AppDelegate.m 3815 total mac@MacdeMBP Classes %
|
代码行总数:3815
行
方法二:
- 和上面的流程一样,只不过终端中输入的命令不一样,如下:
1
| find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" ")" -print | xargs grep -v "^$"|wc -l
|
grep -v "^$"
:是 去掉空行
的意思
- 得出结果,如下:
1 2 3
| mac@MacdeMBP Classes % find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" ")" -print | xargs grep -v "^$"|wc -l 3363 mac@MacdeMBP Classes %
|
总行数:3363