Ошибка Apple Mach-O Linker ("дублированный символ")

Я пытаюсь скомпилировать свою игру, и появляется ошибка, которая не должна появиться.

Это файлы для моего класса:

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

Вызывает ошибку, говоря, что Радиус является дублирующим символом.

Почему это подняло бы эту ошибку?

2 ответа

Решение

Наиболее распространенная причина такого рода ошибок в Objective-C заключается в том, что вы случайно поместили это в один из ваших файлов:

#import "Circle.m"

когда вы должны были поставить это:

#import "Circle.h"

В моем случае действительно было два разных файла реализации; Я играл с локализацией и случайно создал два разных файла.m для разных мест. Удаление и воссоздание.m файла исправило ошибку для меня.

Другие вопросы по тегам