//Person.h
#import <Foundation/Foundation.h>
//#import "Employer.h"
@class Employer;
* 注:使用@class “向前声明”,而不是导入整个头文件,因为在编译 Person.h 时,不需要知道 Employer 类的全部细节,只需要知道有一个类名叫 Employer 就可以。
@interface Person : NSObject
@property (nonatomic, copy) NSString *firstName;
@property (nonatomic, copy) NSString *lastName;
@property (nonatomic, strong) Employer *employer;
//Person.m
#import "Person.h"
#import "Employer.h"
* 注:Person 类的 .m 文件里面,需要导入 Employer.h 。因为此时,需要使用到 Employer 类,必须知道其所有接口细节。
@implementation Person
@end
将引入头文件的时机尽量后延,只在确有需要时才引入,这样就可以减少类的使用者所需引入的头文件数量。假设把 Employer.h 引入到 Person.h ,那么只要引入 Person.h , 就会一并引入 Employer.h 的所有内容。这会引入许多根本用不到的内容,增加编译时间。
网友评论