【问题标题】:There's @interface in my @implementation — why is that?我的@implementation 中有@interface——这是为什么呢?
【发布时间】:2010-05-11 20:50:57
【问题描述】:

这是一个非常愚蠢的问题——我正在查看一些 Cocoa 示例代码,在 .m 文件和标题中都有 @interface 块。例如,在 AppDelegate 类头中,UIWindow 和 UI 导航被定义为实例变量,但 @property 声明实际上是在实现文件中进行的。这是否有功能性原因,是风格选择,还是……?

【问题讨论】:

    标签: objective-c cocoa


    【解决方案1】:

    如果您只需要例如一些自定义委托在内部与另一个类一起工作,无需在标题中公开接口。
    它只是增加了不必要的噪音并使接口可用,这些接口可能不是为公共使用而设计的,或者在类的上下文之外没有用处。

    类的方法和属性也是如此——如果你想为你的实例变量使用声明的属性但又不想让它们被公开访问,你不必在头文件中声明它们。类扩展允许你这样做,参见例如"How to make a private property?".

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-20
      • 2012-02-09
      • 2011-11-14
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-02
      相关资源
      最近更新 更多