Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 那里';我的@implementation—;为什么呢?_Objective C_Cocoa - Fatal编程技术网

Objective c 那里';我的@implementation—;为什么呢?

Objective c 那里';我的@implementation—;为什么呢?,objective-c,cocoa,Objective C,Cocoa,这是一个非常无趣的问题——我正在看一些Cocoa示例代码,在.m文件和头文件中都有@interface块。例如,在AppDelegate类头中,UIWindow和UI导航被定义为实例变量,但@property声明实际上是在实现文件中进行的。是否有功能上的原因,是风格上的选择,还是…?如果您只需要(例如)一些自定义委托在内部处理另一个类,则无需在标题中公布接口。 它只是增加了不必要的干扰,使接口可用,这些接口可能不是为公共用途设计的,或者在类的上下文之外没有用处 类的方法和属性也是如此——如果您希

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

如果您只需要(例如)一些自定义委托在内部处理另一个类,则无需在标题中公布接口。
它只是增加了不必要的干扰,使接口可用,这些接口可能不是为公共用途设计的,或者在类的上下文之外没有用处

类的方法和属性也是如此——如果您希望为实例变量使用声明的属性,但不希望它们可以公开访问,则无需在标头中声明它们。类扩展允许您这样做,请参见例如