我们有一个类 WayPoint 。但在某些时候,我们决定将类重命名为 Placemark 。但是,我们并不是真的想更改类的名称,因为这会导致对现有代码进行大量修改。因此,我在头文件的底部添加了一行 typedef,并从此愉快地开始在任何新代码中使用 Placemark

@interface WayPoint : _WayPoint
@end
typedef WayPoint Placemark;

但还有一件事我不明白。如果我尝试在其他一些头文件中使用前向定义。我只能使用:
@class WayPoint;

如果我使用:
@class Placemark;

我会收到错误信息:



为什么?

最佳答案

不知道为什么不能使用Xcode的重构功能(“简单重命名”可以快速,轻松地实现)。但是如果你真的想这样做,你可以使用比 typedef 更好的东西:

@compatibility_alias Placemark WayPoint

关于objective-c - 在Objective-C中重新定义为另一种符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26632576/

10-12 14:29