2013-09-30 18 views
0

我有一個頭文件包含一個接口的屬性和方法(讓我們稱之爲Eh),並且Xcode通知我有關此頭字段內的語法錯誤,這是沒有意義的,因爲Eh不包含任何錯誤。 這些錯誤僅在特定條件下出現:頭文件中奇怪的語法錯誤

E.h已包含在A.h中,並且沒有錯誤。

當E.h不包含在B.m中時,沒有錯誤並且編譯正確,但是如果將它包含在B.m中,則會顯示錯誤。 (B.m do not use any code from E.h)

附加信息:B.m包括B.h然後E.h。

我沒有發現相關的包含源代碼,因爲它代表了數千行,我不會要求你分析這一點。 我絕對需要一些提示,指出可能的原因以及從哪裏開始搜索。

在此先感謝。

+1

你可以包含顯示錯誤的行,並說出錯誤是什麼 – Brian

+0

只是一個愚蠢的猜測,但你嘗試重新輸入顯示錯誤的代碼行嗎?你可能已經從一個有一些編碼問題的站點複製並粘貼它,所以它可能看起來像一個報價,但它不是。 – TheAmateurProgrammer

+0

我在屬性聲明和缺少@end(缺少意義)中丟失了分號錯誤 – b1onic

回答

0

通過使用Xcode中的「顯示預處理」選項,我發現誒屬性命名@property (retain) NSString *MY_STRING;被替換與@property (retain) NSString *@"My String"。看起來有一個define MY_STRING @"My String"包含在一個不同的頭文件本身包含在B.h中,本身包含在B.m之前的E.h.Hard發現!一天的課程:絕對不要用大寫字母寫你的變量。

-1

在C++的作品,也許會幫助你:

文件

#ifndef __ECLASS__ 
#define __ECLASS__ 

<here original declarations from E.h> 

#endif 
+1

在Objective-C中這不是必需的,因爲'#import'檢查是否已經包含文件 – Brian