统计项目代码行数:
mac系统下,统计项目代码行数 ==> 在终端下,导航到项目根目录,执行以下命令:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" -or -name ".swift" ")" -print | xargs wc -l
如果遇到以下报错:
xargs: unterminated quote
用以下命令代替:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" -or -name ".swift" ")" -print0 | xargs -0 wc -l
如果想统计其他语言代码,可自行替换文件后缀名,如统计 java 代码:
find . "(" -name "*.java" ")" -print0 | xargs -0 wc -l
分析 Crash 日志:
遭遇Crash文件战:教你如何搞定iOS崩溃日志 iOS调试之 crash log分析 #iOS 缓存知识: 从 YYCache 源码 Get 到如何设计一个优秀的缓存 #bitcode 理解: 深入理解iOS开发中的BitCode功能
Push / Present 一个控制器,各种方法的执行顺序
由导航控制器 Push 一个控制器,然后再 Pop 回去,方法执行顺序如下:
BViewController init
===> BViewController viewWillAppear
===> AViewController viewWillDisAppear
===> AViewController viewDidDisAppear
===> BViewController viewDidAppear
===> AViewController viewWillAppear
===> BViewController viewWillDisAppear
===> BViewController viewDidDisAppear
===> AViewController viewDidAppear
===> BViewController dealloc
由A视图控制器控制器 Present 一个控制器,然后再 Dismiss 回去,方法执行顺序如下:
BViewController init
===> BViewController viewWillAppear
===> AViewController viewWillDisAppear
#此处与 Push 的方式不同
===> BViewController viewDidAppear
===> AViewController viewDidDisAppear
===> AViewController viewWillAppear
===> BViewController viewWillDisAppear
#此处与 Push 的方式不同
===> AViewController viewDidAppear
===> BViewController viewDidDisAppear
===> BViewController dealloc