【发布时间】:2010-05-11 20:50:57
【问题描述】:
这是一个非常愚蠢的问题——我正在查看一些 Cocoa 示例代码,在 .m 文件和标题中都有 @interface 块。例如,在 AppDelegate 类头中,UIWindow 和 UI 导航被定义为实例变量,但 @property 声明实际上是在实现文件中进行的。这是否有功能性原因,是风格选择,还是……?
【问题讨论】:
标签: objective-c cocoa
这是一个非常愚蠢的问题——我正在查看一些 Cocoa 示例代码,在 .m 文件和标题中都有 @interface 块。例如,在 AppDelegate 类头中,UIWindow 和 UI 导航被定义为实例变量,但 @property 声明实际上是在实现文件中进行的。这是否有功能性原因,是风格选择,还是……?
【问题讨论】:
标签: objective-c cocoa
如果您只需要例如一些自定义委托在内部与另一个类一起工作,无需在标题中公开接口。
它只是增加了不必要的噪音并使接口可用,这些接口可能不是为公共使用而设计的,或者在类的上下文之外没有用处。
类的方法和属性也是如此——如果你想为你的实例变量使用声明的属性但又不想让它们被公开访问,你不必在头文件中声明它们。类扩展允许你这样做,参见例如"How to make a private property?".
【讨论】: