2012-05-17 32 views
1

我想编译我的游戏,不应该出现的错误是。苹果Mach-O链接器错误(“重复的符号”)

这些是我的类文件:

Circle.h:

#import <UIKit/UIKit.h> 

@interface Circle : NSObject 
{ 

} 
@property (readwrite, assign) CGPoint Center; 
@property (readwrite, assign) float Radius; 

+ (Circle *) CircleMakeFromCenter:(CGPoint)center radius:(float)radius; 

@end 

Circle.m:

#import "Circle.h" 

@implementation Circle 
@synthesize Center; 
@synthesize Radius; 

+ (Circle *) CircleMakeFromCenter:(CGPoint)center radius:(float)radius{ 
    Circle *c = [[Circle alloc] init]; 
    c.Center = center; 
    c.Radius = radius; 

    return c; 
} 

@end 

它弹出一个错误说,半径是重复符号。

为什么会出现此错误?

+0

您应该包含链接步骤的文本。它可以显示重复符号的来源。您可能会将您的.h文件添加到编译阶段 - 这可能会导致这种情况发生,我相信。 – nielsbot

+0

我清理并重建它,错误仍然出现。我如何知道我是否将其添加到我的编译阶段? – Bananable

回答

12

对于这种在Objective-C错误的最常见的原因是你在不小心你的文件之一把这个:

#import "Circle.m" 

时,你就应该把这样的:

#import "Circle.h" 
+0

哦,是的!谢谢! – Bananable

+0

OMG我刚刚花了一个小时,可以忽略.m而不是.h谢谢! – JAgostoni

+0

是的,Xcode提供了''import'自动完成'#import'和'.h'和'.m'文件,所以很容易犯这个错误。 –

0

在我的情况下,确实有两种不同的实现文件;我正在玩本地化,我无意中为不同的位置创建了两个不同的.m文件。删除并重新创建.m文件为我解决了错误。

相关问题