Ошибка 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 файла исправило ошибку для меня.