* .m文件中的@interface关键字

其余的部分

我只想知道两者之间是否有任何区别:

@interface AppDelegate : NSObject <NSApplicationDelegate>
@property ...
@end

在* .h文件中:

@interface AppDelegate()
@property ...
@end

@implementation AppDelegate

在* .m文件中。

我什么时候需要第一个版本,什么时候使用第二个版本会更好?

热舔

您可以放入.h文件的任何内容,也可以放入.m文件的任何内容。导入的.h的内容在编译的早期阶段会直接复制到.m中,因此基于放置语句的位置在语法上没有任何区别。

但你会注意到,有之间在语法上的差异

@interface AppDelegate : NSObject <NSApplicationDelegate>

@interface AppDelegate()

第二种形式是已经描述过的接口扩展,而不是新的(并且有冲突的)版本。将其放置在.m中(这不是必需的-可以将其放置在.h中而不会引起错误)这一事实意味着,导入.h的任何其他模块都不会“看到”它,从而使其成为“私有” ”(Objective-C中的所有内容都是私有的)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章