2015-12-15 48 views
0

昨天我跑我的項目,這些導入文件:Objective-C的.h文件中未發現

#import "sip/NgnSipPreferences.h" 
#import "services/impl/NgnBaseService.h" 
#import "services/INgnSipService.h" 

,但今天我對他們收到錯誤。它說沒有找到'sip/NgnSipPreferences.h'文件。但當我刪除sip/使它"NgnSipPreferences.h"然後它被讀取。

爲什麼會發生這種情況?我不想刪除頭文件的路徑,因爲它太多了,我認爲這是正確的方法。

我該如何解決這個問題?

+0

好了,這是沒有前綴頭。你可以#導入你的前綴文件中的3個頭文件,不需要在每個類中導入它們。 –

+0

他們實際上是來自idoubs的代碼。昨天他們非常好,現在我在每個人都用.h文件得到錯誤。 – theFool

+0

您是否檢查過構建日誌以查看正在傳遞給編譯器的'-I'選項? – trojanfoe

回答

2
#import "sip/NgnSipPreferences.h" 

從文件夾SIP /,相對於所述文件導入的導入NgnSipPreferences.h

所以,你有2個解決方案,如果你不想改變#進口(通常是更好地做你說,留在適當的地方進口/包括):

  1. 您移動(在sip /目錄之上),或者
  2. 您在您的Build_Settings中添加文件夾以上的 sip /目錄到HEADER_SEARCH_PATHS參數(例如,如果您在根目錄中有sip /文件夾,只需添加${SRCROOT}而不遞歸 - 在這種情況下,編譯器肯定會找到您的頭文件${SRCROOT}/sip/NgnSipPreferences.h)

注:獲得與主題信心,讀Adding system header search path to Xcode

注:如果這是今天工作到昨天,但不是,你可以很容易理解,如果你安裝了GIT或其他版本發生了什麼工具,但有時Xcode並沒有正確清理所有的緩存,所以你的問題可能在你想到的日期之前引起很多。出於這個原因,不僅「乾淨」,而且還刪除目錄DerivedData是非常有用的! (我經常做的事情時,「怪」正在發生的事情...)

+0

我恢復到我在最後的Git代碼,但它仍然沒有工作,所以我試圖刪除目錄DerivedData並把它再次,現在的工作!感謝您的建議! – theFool