Objective-C中@class和#import的区别

1. import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑,后面会再告诉你。

2. 如果有循环依赖关系,如:A->B,B->A这样的相互依赖关系,如果使用#import来相互包含,那么就会出现编译错误,如果使用@class在两个类的头文件中相互声明,则不会有编译错误出现。

所以,一般来说,@class是放在interface中的,只是为了在interface中引用这个类,把这个类作为一个类型来用的,在实现这个类时,如果需要引用这个类的实体变量或者方法之类的,还是需要import。


版权声明:本文为wuleihenbang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。