Objective-C Redefinition of forward class 'Foo' 编译错误

遇到编译错误

1
Redefinition of 'Foo' as different kind of symbol

按照 SO 的回答

应该使用

1
2
typedef NSObject Foo;
@class Foo;

先试用 typedef 假名定义 Foo, 再使用 @class 声明就不会有错.
但是如果先 @class 声明 再 typedef 定义就会报错.

但是由于 App 内头文件各种引用实在过于混乱, 不好保证这个顺序.
解决办法是 重新定义一个头文件, 只包含 typedef NSObject Foo;
然后将 @class 以及 typedef 的地方改为 #import “XXX.h” 导入这个头文件就好了

-------------本文结束感谢您的阅读-------------

欢迎关注我的其它发布渠道