我对外部和继承的使用有疑问。我正在使用 X-Code 在 Objective C 中编写一个 iOS 应用程序。
我有两个假设的类 B 和 C,它们都继承自类 A。
现在类 A 在它的头文件中导入一个名为 Constraints 的类,如下所示:#import "Constraints.h"。在约束的.H标头中,在@interface Constraints : NSObject上方但在导入下方声明了各种extern NSInteger const VAR_NAME值 。在 .M 实现中,外部变量被初始化,例如如下NSInteger const VAR_NAME = 1。再次将其放置在导入下方但在@implementation Constraints行上方。该文件旨在保存应用程序范围的全局约束。
但是,在执行此操作时,XCode 在构建时为在约束文件中声明为 extern 的每个变量在 B 类和 C 类中的重复符号报告一个 mach-o-linker 错误。
所以我当时所做的就是从父类 A 中删除类 Constraints 的导入,而是直接将其导入到类 B 和 C 中。但是,我遇到了同样的问题。
我已经在这个桌子上撞了几个小时了,任何帮助都将不胜感激。