2013-03-23 80 views
0

我创建了一个名为“ObjCWorkAppMath.m”的NSObject文件,它包含一些有用的功能,我想在我的ViewController文件中使用该类,但XCode不编译我的项目并返回错误如下:Apple O-mach链接器错误

duplicate symbol _OBJC_METACLASS_$_ObjCWorkAppMath in: 
    /Users/ctkt/Library/Developer/Xcode/DerivedData/ObjCWorkApp-hgxcjtjhzwxhqxcmxgkpucpfpieq/Build/Intermediates/ObjCWorkApp.build/Debug-iphonesimulator/ObjCWorkApp.build/Objects-normal/i386/ObjCWorkAppMath.o 
    /Users/ctkt/Library/Developer/Xcode/DerivedData/ObjCWorkApp-hgxcjtjhzwxhqxcmxgkpucpfpieq/Build/Intermediates/ObjCWorkApp.build/Debug-iphonesimulator/ObjCWorkApp.build/Objects-normal/i386/ObjCWorkAppViewController.o 
duplicate symbol _OBJC_CLASS_$_ObjCWorkAppMath in: 
    /Users/ctkt/Library/Developer/Xcode/DerivedData/ObjCWorkApp-hgxcjtjhzwxhqxcmxgkpucpfpieq/Build/Intermediates/ObjCWorkApp.build/Debug-iphonesimulator/ObjCWorkApp.build/Objects-normal/i386/ObjCWorkAppMath.o 
    /Users/ctkt/Library/Developer/Xcode/DerivedData/ObjCWorkApp-hgxcjtjhzwxhqxcmxgkpucpfpieq/Build/Intermediates/ObjCWorkApp.build/Debug-iphonesimulator/ObjCWorkApp.build/Objects-normal/i386/ObjCWorkAppViewController.o 
ld: 2 duplicate symbols for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

我试着在计算器所有方案来解决这个错误,它仍然无法正常工作或我不能这样做的权利...

#import "ObjCWorkAppViewController.h" 
#import "ObjCWorkAppMath.m" 

@interface ObjCWorkAppViewController() 

@end 

@implementation ObjCWorkAppViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 

哪里错了吗?

+3

作为一个规则的拇指,从来没有导入M文件(除非你真的有一个很好的理由) – 2013-03-23 08:26:32

+0

@canpoyrazoğlu:是的,这是很好的建议。也许Xcode不应该提供用于自动完成的.m文件。 – 2013-03-23 08:55:47

+0

是的,我同意。它会造成混乱。有一些角落的情况下,人们可能想包括他们,但这从来就不是一般情况。 – 2013-03-23 08:58:39

回答

2

替换

#import "ObjCWorkAppMath.m" 

通过

#import "ObjCWorkAppMath.h" 

导入实施文件而不是接口文件导致的类中定义的两倍:在 “ObjCWorkAppMath.m”(其中它属于),并在“ObjCWorkAppViewController.m”(这是不是打算)。

+0

非常感谢你..它现在很好用:) – cmltkt 2013-03-23 08:37:17