2011-05-07 152 views
0

我有一個接口這種方法聲明:LotPolygon前奇怪的編譯錯誤XCode中

預計「)」:

#import "LotPolygon.h" 

... 

@interface LotLattice : NSObject { 

... //member variables 

} 

- (LotPolygon *) lotPolygonContainingCoordinate:(CLLocationCoordinate2D)coord; 

... 

@end 

編譯器給出了這樣的錯誤方法聲明。

如果我將它評論出來,代碼會根據您所期望的警告(Lotlattice可能不會響應...)和函數以及該方法正常工作。但是這個警告真的讓我困擾,因爲它讓我不太可能看到我需要看到的其他警告。我真的很喜歡它用適當的聲明進行編譯,而我只是看不到該行的任何錯誤。

我甚至嘗試過在文件中移動該行,以查看它是否真的是在排除Xcode之前的一行,但沒有 - 它確實不喜歡該行。有任何想法嗎?

+0

有你在任何地方任何地方使用任何的#define?如果是這樣,確保你沒有;在任何不應該有的地方結束。我提到它的唯一原因是它有時會導致我的錯誤。 – Damien 2011-05-07 16:40:03

+0

LotPolygon.h中有什麼? – 2011-05-07 17:14:00

回答

0

該錯誤意味着編譯器不知道​​類。無論是包括定義類的頭文件,或添加向前聲明

// This says that LotPolygon is the name of a class, but it doesn't define 
// anything else about it 
@class LotPolygon; 

- (LotPolygon *) lotPolygonContainingCoordinate:(CLLocationCoordinate2D)coord; 
+0

是的,我能夠在.h文件中使用@class的不同組合來修復它,並在.m文件中使用完整的#import語句。我仍然不明白爲什麼這是必要的 - 正如您從我的摘錄中可以看到的那樣,LotPolygon.h的#import在那裏......噢。 – pseudopeach 2011-05-09 17:03:21

0

XCode通常在找不到LotPolygon聲明時打印該錯誤。確保它可以找到@interface和該對象的@implementation