@class vs #import

jar*_*ryd 6 objective-c

在objective-c中使用@class或#import有什么区别?

我见过各种教程,只有少数使用@class,而其他大多数使用#import.

nev*_*ing 14

@class不导入文件,它只是对编译器说"这个类存在,即使你不知道它,如果我使用它也不要警告我".#import实际上导入文件,以便您可以使用所有方法和实例变量.@class用于节省时间编译(导入整个文件使编译需要更多时间).您可以#import根据需要使用,只需要更长的时间来构建项目.

  • 有时,特别是在循环引用的情况下,你绝对不能使用#import.@class是类的前向声明,因为它没有定义类,所以可以打破循环引用. (2认同)

小智 6

请参阅定义类,尤其是引用其他类.