【发布时间】:2012-05-10 14:52:13
【问题描述】:
在 Java 中,当您覆盖方法时,建议(几乎是强制)添加 @Override 注释。在 Objective-C 世界中是否有标记(在 cmets 中或通过其他机制)覆盖方法的约定?
【问题讨论】:
标签: objective-c oop overriding
在 Java 中,当您覆盖方法时,建议(几乎是强制)添加 @Override 注释。在 Objective-C 世界中是否有标记(在 cmets 中或通过其他机制)覆盖方法的约定?
【问题讨论】:
标签: objective-c oop overriding
没有。 Objective-C 中的所有方法都是通过 Objective-C 的消息传递发送的,因此所有方法都可以被覆盖。这是语言的一部分。
也没有标记这个的约定。它是语言的一部分,如果您要发表评论,否则当您以后无意或有意这样做时,它只会令人困惑。
【讨论】:
[super loadView]; 之类的错误更容易被发现
我不确定 Xcode 是否这样做,但 Jetbrains 的 AppCode IDE 会自动在边距中使用蓝色的小覆盖徽章注释被覆盖的方法,如下所示:
。 .除此之外(也显示了),我还喜欢创建一些实时模板(在 Xcode 中也称为 code-sn-ps),以使用 #pragma 标记来注释被覆盖的方法。我发现按以下顺序定义标准结构会有所帮助:
通过使用实时模板/代码片段,我只需键入“覆盖 [tab]”,IDE 就会为我创建 #pragma 标记。
。 .也许你甚至可以使用 OCLint 来检查这个结构是否被遵守。
【讨论】:
不,不是。
这似乎并不重要,可能是因为动态调度。
【讨论】:
override 注释,而是创建了一种全新的语言,这是有原因的。