1.作用上的区别 #import会包含引用类的所有信息(内容), 包括引用类的变量和方法 @class仅仅是告诉编译器有这么一个类, 具体这个类里有什么信息, 完全不知
2.效率上的区别 如果有上百个头文件都#import了同一个文件,或者这些文件依次被#import,那么一旦最开始的头文件稍有改动,后面引用到这个文件的所有类都需要重新编译一遍 , 编译效率非常低相对来讲,使用@class方式就不会出现这种问题了
3.防止相互引用
# 注意: 由上可知,@class是放在interface中的,只是在引用一个类,将这个被引用类作为一个类型,在实现文件中,"如果需要引用到被引用类的实体变量或者方法时",还需要使用#import方式引入被引用类。
存在依赖关系来说,比方A类引用B类,同时B类也引用A类,使用#import嵌套包含就会有问题,但是使用@class就可以相互声明,不会报错 把其中一个头文件中的import换成@class
|