我们有一个类WayPoint
。但是在某个时候,我们决定将该课程重新命名为Placemark
。但是,我们并不是真的想要更改类的名称,因为它会导致现有代码的很多修改。因此,我在头文件的底部添加了一行typedef
,并从此开始在任何新代码中开始使用Placemark
。在Objective-C中重新定义为另一种符号
@interface WayPoint : _WayPoint
@end
typedef WayPoint Placemark;
但仍有一件事我不明白。如果我尝试在其他头文件中使用前向定义。我只能用:
@class WayPoint;
如果我使用:
@class Placemark;
我会得到错误信息:
重新定义 '地标' 作为不同意义的符号
为什么?
有趣的问题,我的答案提供了替代品,因为是机器人不回答这个问题。我有一些猜测,但我不一定会在这里发布。我很好奇低层次的细节。 – 2014-10-29 14:42:37