2011-06-16 71 views
1

我有时会看到我所做的更改显示在第三次或第四次生成运行。就好像xcode“缓存”旧的编译。Xcode是否始终从头编译

如何删除所有编译文件,并从头开始

有一两件事特别frustating是这样的:

我得到一个编译此代码警告

: [self.currentBusiness addCategoriesObject: self.currentCategory];

我知道是什么问题。自动生成的核心数据代码没有 - (void)addDistrictsObject:(District *)value; - (void)addCategoriesObject:(Category *)value;

Business.h。该功能在Business.m中定义。

所以我加了这两行。猜猜看,还是一样的警告。几次没有问题,我有这个完全相同的问题。我知道解决方案。我把这条线放在business.h中。没有什么变化。

但是现在我得到了相同的编译器警告,即使该方法是在business.h中清晰定义的。

好像xcode不关心我放的最后一个改变。

我很沮丧。我在我的utilities.h中再次添加#import“Business.h”。由于已经通过其他渠道包含“Business.h”,因此不应更改任何内容。猜猜看,它有效。

但后来我想,这就是问题所在。我好奇地删除/#再次导入“Business.h”,所以它像往常一样回来。如果这真的是问题,那么错误应该再次显示正确吗?错误。

错误消失了。

因此,我所做的更改没有立即显示结果。编译器或预编译器都必须使用某种缓存。

这很重要。在我不知道如何调试之前,有2-3个构建版本的bug。如果代码在第一次构建之后立即发生变化,那么我知道发生了什么错误。

此外,该autorestore似乎并没有工作。我创建了一个快照,将快照恢复到另一个目录并且出现了很多编译错误。

+0

按照以下步骤解决问题,转到生成 - >清理所有目标。你会完成,然后再次编译并运行以查看你的更改 – 2011-06-16 09:32:06

回答

4

NO,只编译其中任何形式的任何编辑发生的文件。

4

Xcode增量构建。您可以通过转到Product菜单项并选择Clean(或按Shift+Cmd+K)来做一个干净的生成。这将删除所有中间文件并从头开始。

2

点击xcode - >清空缓存。

下面是截图。

xcode

+0

没有空的缓存选项 – 2011-06-16 10:25:32

+0

现在我明白了。如果其中一个依赖性发生变化,xcode不会将其视为更改。 – 2011-06-16 10:25:59