2013-03-23 65 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