【问题标题】:Circular Header Import, Enum Unrecognized循环头导入,枚举无法识别
【发布时间】:2012-12-05 08:05:23
【问题描述】:

我有两个 Cocoa Touch 类(objective-c)。以及#import 彼此的标头。

A 类的标头定义了一个枚举,B 类的标头正在尝试使用该枚举。 B类由于不识别类型而编译失败。

我认为这是一个循环依赖问题,但我认为 @class 不会有太大帮助,因为问题在于枚举。

你有什么建议?

【问题讨论】:

  • Class A 标头从 Class B 标头中使用了什么?
  • 现在,只是类名。但是(除非我的设计证明不可行)它最终会使用它的属性和方法。然而,反之则不正确,B 类可以不使用 A 类中的枚举类型以外的任何东西。也许我可以将枚举移动到“Common.h”标题中。
  • 是的,枚举的“Common.h”听起来是个不错的计划。

标签: objective-c cocoa-touch


【解决方案1】:

将枚举放在它自己的头文件中,并在彼此的头文件中使用@class 转发声明类,这样A 不需要导入B,B 不需要导入A,但展位导入枚举头文件。

【讨论】:

    【解决方案2】:

    在头文件中使用@class ClassName; 并在 .m 文件中使用 import。

    【讨论】:

    • 仍然无法编译;该类型在 B 类中仍然无法识别。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2015-10-19
    • 2017-05-18
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    相关资源
    最近更新 更多