【发布时间】:2013-02-20 01:15:19
【问题描述】:
我对外部和继承的使用有疑问。我正在使用 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 中。但是,我遇到了同样的问题。
我已经在这个桌子上撞了几个小时了,任何帮助都将不胜感激。
【问题讨论】:
标签: ios objective-c inheritance extern