我只想知道两者之间是否有任何区别:
@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] 删除。
我来说两句