简介
在 Objective - C 中也使用了“头文件”和“实现文件”来区隔代码,所以在创建类的时候我们要通过@class和#improt 来实现两个类之间的互调。
异同
- import 会包含当前类的所有信息(实体变量+方法)
class 只是告诉编译器声明类的名称; - if(A,B,C 类种都import 了 D类)这样编译器编译程序的时候就先从 A中先把 D类的.h文件编译一遍,在 B 中又会将 D 类的.h文件再次进行编译,所以会增加编译器编译的时间;
- if(存在依赖的关系,A 类中 import 了 B 类,B 类 import 了 A 类)这样相互引用,就会造成循环引用的问题,这时候就要用@class 来解决;
用法
例如:
<code>
#improt <Foundataioin/Foundation.h>
@interface Person :NSObject
@property (nonatomic, copy)NSString * name
@property (nonatomic, strong)Man * manPerson;
@end
</code>
因为我们调用了Man这个类,所以我们在类中#import 或者@class 一个类名,这里我们就要用@class,因为在类的调用中没有用到 Man 类中的属性,如果在.m 中有用到 Man 类的属性的话,我们就需要在.m 中进行#import 中进行操作,这样才可以使得编译器编译代码的时候速度更快。