1

编译代码时出现错误。问题标识符将其标记为“Apple Mach-O Link Linker command failed”。我不知道这是什么,所以我无法找到解决方案。

duplicate symbol _OBJC_METACLASS_$_XYZFlipsideViewController in:
    /Users/studentuse/Library/Developer/Xcode/DerivedData/RSC-      
aardgrngtzicssfffcbdqsezpqmv/Build/Intermediates/RSC.build/Debug-    
iphonesimulator/RSC.build/Objects-normal/i386/XYZAppDelegate.o
    /Users/studentuse/Library/Developer/Xcode/DerivedData/RSC-  
aardgrngtzicssfffcbdqsezpqmv/Build/Intermediates/RSC.build/Debug-
iphonesimulator/RSC.build/Objects-normal/i386/XYZFlipsideViewController.o
ld: 6 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation) //This    
line has the mistake

代码有什么问题?

(这只是代码的一部分。)

4

2 回答 2

2

问题是您已经XYZFlipsideViewController两次定义了类的实现,而链接器无法弄清楚您的意思是哪个定义:

duplicate symbol _OBJC_METACLASS_$_XYZFlipsideViewController

定义它的两个地方是这两个目标文件:

XYZAppDelegate.o
XYZFlipsideViewController.o

有两种可能的解释:

  • @implementation XYZFlipsideViewController ... @end在两个源文件中XYZAppDelegate.m都有一个块XYZFlipsideViewController.m或者
  • 你有@implementation ... @end一个头文件中的块,它#include#import这两个源文件编辑

在第一种情况下,解决方案是删除其中一个@implementation块。在第二种情况下,解决方案是@implementation块从头文件移动到源文件中,但将@interface块保留在头文件中。

@interface理解和之间的区别很重要@implementation——前者说“这是一个类的名称、它的实例变量的名称以及它的成员函数的名称”,而后者说“这是类的所有定义”。类的属性和成员函数”。

于 2013-05-06T20:30:14.723 回答
0

确保并检查您的实际项目目录中是否存在它说您有重复的文件的多个文件。有时我在删除和重新创建文件时忘记单击发送到垃圾箱与删除参考。

我不确定这是你的问题,但我以前也遇到过类似的问题。

祝你好运!^^

于 2013-05-06T20:26:29.717 回答