外部继承重复符号错误,发生了什么?

时间:2013-02-20 01:15:19

标签: ios objective-c inheritance extern

我对extern和继承的使用有疑问。我正在使用X-Code在Objective C中编写iOS应用程序。

我有两个假设的B和C类,它们都继承自A类。

现在,A类在其头文件中导入一个名为Constraints的类,如下所示: #import“Constraints.h”。在约束的 .H 标题中,声明各种 extern NSInteger const VAR_NAME 值高于 @interface约束:NSObject ,但低于导入。在.M实现中,externs初始化为例如 NSInteger const VAR_NAME = 1 。同样,它位于导入下方,但高于 @implementation Constraints 行。该文件旨在保持应用程序范围内的全局限制。

但是,在执行此操作时,构建XCode会报告B类和C类中的重复符号的mach-o-linker错误,以便在Constraints文件中声明为extern的每个变量。

所以我所做的就是从父类A中删除类Constraints的导入,而是直接将它导入到类B和C中。但是,我得到了同样的问题。

我已经在这个桌子上抨击我的头几个小时了,任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以发布产生错误的代码吗?这对我来说似乎是正确的,通常只是由一个错字引起的。我读过其他帖子,人们只是偶然导入.m文件而不是.h文件,这通常会导致此错误。