奇怪的编译错误XCode中
问题描述:
我有一个接口这种方法声明:LotPolygon前奇怪的编译错误XCode中
预计“)”:
#import "LotPolygon.h" ... @interface LotLattice : NSObject { ... //member variables } - (LotPolygon *) lotPolygonContainingCoordinate:(CLLocationCoordinate2D)coord; ... @end
编译器给出了这样的错误方法声明。
如果我将它评论出来,代码会根据您所期望的警告(Lotlattice可能不会响应...)和函数以及该方法正常工作。但是这个警告真的让我困扰,因为它让我不太可能看到我需要看到的其他警告。我真的很喜欢它用适当的声明进行编译,而我只是看不到该行的任何错误。
我甚至尝试过在文件中移动该行,以查看它是否真的是在排除Xcode之前的一行,但没有 - 它确实不喜欢该行。有任何想法吗?
答
该错误意味着编译器不知道类。无论是包括定义类的头文件,或添加向前声明:
// 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
有你在任何地方任何地方使用任何的#define?如果是这样,确保你没有;在任何不应该有的地方结束。我提到它的唯一原因是它有时会导致我的错误。 – Damien 2011-05-07 16:40:03
LotPolygon.h中有什么? – 2011-05-07 17:14:00