Objective c 知道一个Xcode项目中有多少行代码吗?

Objective c 知道一个Xcode项目中有多少行代码吗?,objective-c,xcode,cocoa-touch,Objective C,Xcode,Cocoa Touch,我有一个相当大的项目,最终我完成了。我只是想知道我的项目中总共有多少行代码。我使用的是Xcode 3。 那么,您真的能知道编译了多少行代码吗?一种方法是将副本加载到Xcode中,并使用“Xcode 4的项目分析器”。在苹果Mac应用商店中搜索“Xcode”。我没有使用过这个程序,但昨天我在Mac应用商店搜索Xcode相关应用时碰巧看到了它 希望这能有所帮助。我不确定是否有任何工具可以直接插入Xcode(当4.1在Lion上免费提供时,为什么您仍然使用Xcode 3?),但我发现命令行工具与Obj

我有一个相当大的项目,最终我完成了。我只是想知道我的项目中总共有多少行代码。我使用的是Xcode 3。
那么,您真的能知道编译了多少行代码吗?

一种方法是将副本加载到Xcode中,并使用“Xcode 4的项目分析器”。在苹果Mac应用商店中搜索“Xcode”。我没有使用过这个程序,但昨天我在Mac应用商店搜索Xcode相关应用时碰巧看到了它


希望这能有所帮助。

我不确定是否有任何工具可以直接插入Xcode(当4.1在Lion上免费提供时,为什么您仍然使用Xcode 3?),但我发现命令行工具与Objective-C代码配合使用效果很好。

打开Terminal.app,
cd
到项目的根目录中,然后运行以下命令:

find . \( -iname \*.m -o -iname \*.mm -o -iname \*.c -o -iname \*.cc -o -iname \*.h \) -exec wc -l '{}' \+
如果您还希望在计数中包含其他文件类型,请添加更多的
-o\*.ext
子句。

您可以使用或cloc来执行此操作,它们都与Objective-C代码兼容

我建议使用sloccount,如果你也使用Jenkins,你可以得到一个漂亮的HTML报告。HTML报告将使您能够深入到不同的目录和文件

如果您在Xcode项目的根目录中,这是一个命令行,用于概述您的代码:



    sloccount --duplicates --wide YOUR-TARGET-NAME

如果您想生成一份在Jenkins中使用的报告,只需添加
--details
标志:



    sloccount --duplicates --wide --details YOUR-TARGET-NAME > build/sloccount.sc

并通过Jenkins UI为sloccount安装Jenkins插件


在这篇博客文章(免责声明:我是作者)中,你可以在Jenkins中看到此类报告的例子:

打开Terminal.app,进入项目的根目录,并运行以下命令:

find . \( -iname \*.m -o -iname \*.mm -o -iname \*.c -o -iname \*.cc -o -iname \*.h \) -exec wc -l '{}' \+
仅适用于Swift:

find . \( -iname \*.swift \) -exec wc -l '{}' \+
仅适用于Obj-C:

find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h \) -exec wc -l '{}' \+
对于Obj-C+Swift:

find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h -o -iname \*.swift \) -exec wc -l '{}' \+
对于Obj-C+Swift+C+C++:

find . \( -iname \*.m -o -iname \*.mm -o -iname \*.c -o -iname \*.cc -o -iname \*.h -o -iname \*.hh -o -iname \*.hpp -o -iname \*.cpp -o -iname \*.swift \) -exec wc -l '{}' \+
终端快速提示:
ls:列出目录内容
cd:更改目录
按tab键自动完成
记住在空格前加“\”反斜杠
我建议从主项目中删除一个文件夹,这样就可以从框架中去掉代码计数


一个bash脚本,用于查找不带注释和空行的文件的行数
。脚本不计算以
/
开头的注释。将脚本复制到项目文件夹中,并通过
sh scriptname.sh
运行

对于快速更改
\(-iname\*.m-o-iname\*.mm-o-iname\*.h\)
\(-iname\*.swift\)


一个非常好的unix命令是xargs。请参见下面的“管道到xargs”。例如:

find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h -o -iname \*.swift \)  | xargs wc -l

奇怪的是,我必须弄清楚为什么这个答案对我来说比@Esqarrouth的答案低了一点点,重要的不是代码的大小,而是你如何处理它。我可能会在下周得到一个新的MBP,所以我想我会升级;)多年以来,我一直在使用一款名为“Xcode analyzer”的免费应用程序来实现这一点。它可能不如“Project Analyzer”好,但它可以计算toc,嘿,它是免费的。别忘了
'*.hh
'*.hpp'
'*.cpp'
!由于某种原因,这只对.OS席上的*.h文件进行了注释,需要注释行和空行,我怎么才能得到这个呢?下面有一个回答:欢迎栈溢出!谢谢你的回复!请务必仔细阅读本手册。还请注意,每次链接到自己的网站/产品时,都需要发布免责声明。@安德鲁·巴伯谢谢,我已经纠正了这一点,并用命令行示例改进了我的帖子。这正是我想要的。太好了!非常感谢你!