2011-06-16 68 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