#import 和 @class 之间有什么区别,什么时候应该使用其中之一?

2024-01-06

在过去的一个月左右的时间里,我一直在自学 Objective-C(我是一名 Java 专家),现在我的大脑已经掌握了其中的大部分内容。目前让我感到困惑的一件事是:通过 @class 导入类与 #import 导入类有什么区别?

一种比另一种更好,还是在某些情况下我需要使用一种而不是另一种?到目前为止我一直只使用#import。


#import将有问题的整个头文件放入当前文件中;该文件的任何文件#import也包括在内。另一方面,@class(当在带有某些类名的行上单独使用时)只是告诉编译器“嘿,您很快就会看到一个新标记;它是一个类,所以要这样对待它)。

当您有“循环包含”的潜力时,这非常有用;即,Object1.h 引用Object2,Object2.h 引用Object1。如果你#import将两个文件放入另一个文件中,编译器在尝试这样做时可能会感到困惑#importObject1.h,查看它,看到Object2.h;它试图#importObject2.h,并查看Object1.h等。

另一方面,如果每个文件都有@class Object1; or @class Object2;,那么就没有循环引用。只要确保实际上#import将所需的标头添加到您的实现 (.m) 文件中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

#import 和 @class 之间有什么区别,什么时候应该使用其中之一? 的相关文章

随机推荐