OC学习30:项目代码行数统计

张建 lol

前言

iOS代码量的统计,其实就是代码 行数 的统计,其中你自己写的代码 不包括pods 集成第三方 库的`代码。

行数统计方式

  • 【方法一】:查看每一行的行数,再得出总行数,其中不包括空行,但是包括注释。
  • 【方法二】:直接查看总行数,没有中间过程,不包括空行,但是包括注释。

方法一:

  1. 打开终端

  2. cd 进入项目目录(我的是Classes)

  3. 输入命令 find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" ")" -print | xargs wc -l

  4. 得出结果,如下:

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. 和上面的流程一样,只不过终端中输入的命令不一样,如下:
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. 得出结果,如下:
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

  • Post title:OC学习30:项目代码行数统计
  • Post author:张建
  • Create time:2020-09-25 11:06:11
  • Post link:https://redefine.ohevan.com/2020/09/25/OC/OC学习30:项目代码量和行数统计/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
On this page
OC学习30:项目代码行数统计