Xcode中“Product -> Clean”的作用是什么?

10

它到底是做什么的?找不到用通俗易懂的语言解释。


2
也许这个问题的答案可以帮到你? - Michael Dautermann
2个回答

12

基本上,它会删除所有编译的组件,因此下一次构建将会重新构建所有内容。理论上来说这应该永远不必要,因为我们都知道IDE是完美的并且完全跟踪所有源更改,因此可以准确地知道在任何给定时间需要重新编译/重建哪些组件(但是,当然,这种完美似乎有点难以实现。)

“清理”概念存在于大多数IDE中。您在事情表现奇怪时使用它,或在某些已知情况下需要进行“清理”重建。


9
"Clean" 的一个非常重要的用途是在您的应用程序中有图像,并且您更新它们的内容而不更改它们的名称时。例如,假设您有一个名为 Background.png 的图像,您使用了一段时间,然后在 Photoshop 中编辑了此图片并将新图片保存在相同的名称中。在下一次运行应用程序时,图像将不会被刷新;编译器将继续显示旧的图像。为确保看到更新的图像,您需要在运行之前进行“Clean”。因此,在所有图像更新中,名称未更改时,您需要执行“Clean”。
顺便说一句,您可能需要为模拟器和真实设备运行分别执行“Clean”。最后注意一点,不要认为每次您编写代码时,您认为应该工作但实际上没有按预期工作的解决方案就是“Clean”,在这种情况下,问题总是出在您的代码中,需要进行修订。

我相信Xcode 4+会在检测到图像更改时更新它们。 - EmilioPelaez
1
我正在使用Xcode 4.0 Build 4A304a,如果没有选择“Clean”选项,它不会更新图像。 - antf
当然,“完美”的IDE会注意到图像的最后更改日期不同,或者有一些其他方案来检测更改。有时候似乎这些东西的可靠性在同一个IDE中的项目之间也有所不同。 - Hot Licks
1
是的,我可以告诉你,在更改图像后而不重命名时,您需要进行清理。至少对于应用程序图标来说是这样。 - mskw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接