如何从项目中查找和删除未使用的类文件

时间:2010-10-08 06:40:41

标签: objective-c cocoa-touch cocoa class xcode3.2

我的XCode项目有所增长,我知道其中有不再使用的类文件。有没有一种简单的方法可以找到所有这些并删除它们?

4 个答案:

答案 0 :(得分:4)

如果类文件只是在您的项目中而不是目标的一部分,只需在树视图中单击项目本身,即可看到表中的所有文件。确保在表格视图中看到“目标”列,遍历目标并找到没有任何地方检查的文件 - >它们不再编译。

但是如果你仍然编译类并且不再使用它们,那么这种情况会有点困难。看看这个项目

<击> http://www.karppinen.fi/analysistool/#dependency-graphs

您可以创建依赖关系图并尝试以这种方式查找孤立的类。

编辑:链接已经死了,但似乎仍然存在Objective-C依赖图的项目,例如https://github.com/nst/objc_dep

答案 1 :(得分:2)

如果它们是C或C ++符号,那么您可以让链接器为您完成工作。

如果您要删除objc符号,请尝试重构类名(例如重命名该类),并预览它出现的依赖项。如果你引用类/选择器/等。然后是字符串...它可能不那么有效。不幸的是,您经常需要手动测试,以验证删除类不会破坏任何内容。请记住,资源(如xibs)也可以引用/加载objc类。

答案 2 :(得分:2)

这是一个棘手的问题,因为Objective-c是动态的,因为你无法保证不会使用某个类。

考虑是否在运行时生成类名和选择器,然后查找该类,实例化该类,然后使用新创建的选择器在该新创建的对象上调用方法。您的代码中没有明确指定和实例化该对象的位置,但无论如何您都可以使用它。您可以从代码之外的任何位置获取该类名和选择器名称,甚至可以从服务器中的某些数据获取该名称和选择器名称。你怎么知道哪个班级不会被使用?因此,没有能够执行您请求的工具。

答案 3 :(得分:1)

使用类名搜索项目可能是一个选项,认为它可能不是最佳解决方案。特别是当你有很多课时可能会很费时间。