奇怪的编译错误XCode中

问题描述:

我有一个接口这种方法声明: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

该错误意味着编译器不知道​​类。无论是包括定义类的头文件,或添加向前声明

// 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

XCode通常在找不到LotPolygon声明时打印该错误。确保它可以找到@interface和该对象的@implementation