繁体   English   中英

我的AppDelegate.h文件中是否需要为项目中的每个视图控制器提供“ @class”声明?

[英]Do I need an '@class' declaration in my AppDelegate.h file for every view controller in my project?

请解释您的答案,因为到目前为止我不必这样做。

谢谢

@class与C ++中的类向前声明相同。

您可以简单地#import每个视图控制器的头文件,但有时在.h文件中进行前向声明(@class)更为干净,而仅在AppDelegate的.m文件中进行#import。

您只需要导入所需的内容,@ class的作用类似于#import-让编译器知道类型的存在。 那么,为什么要告诉应用程序委托它永远不会看到的类呢?

区别在于:

@class只会说该类存在,仅此而已。

#import告诉代码类接受什么消息或头文件声明的其他内容。 因此,当代码需要实际将消息发送到对象时,可以使用它。

这就是为什么一个非常通用的模式是在标头中使用@class,在实现文件中使用#import。 有时,您确实需要导入标头,如果您必须了解除“此类存在”之外的其他信息,则同样需要。

简短答案:否。请参阅以下问题: @class vs. #import

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM