// // EOCPerson.h // OC高效率52:類的頭文件中儘可能少引用其餘頭文件 // // Created by Zoujie on 15/10/8. // Copyright © 2015年 Zoujie. All rights reserved. // #import <Foundation/Foundation.h> //#import "EOCEmployer.h" @class EOCEmployer;//向前申明該類,將引入頭文件的時機儘可能延後,只有肯定須要時才引入;若是把EOCEmployer.h引入到EOCPerson.h,那麼只要引入EOCPerson.h就會一併引入EOCEmployer.h的全部內容。向前聲明也解決了兩個類互相引用的問題 @interface EOCPerson : NSObject @property (nonatomic,copy) NSString *firstName; @property (nonatomic,copy) NSString *lastName; #pragma mark -要點 /* * 除非確有必要,不然不要引入頭文件。通常來講,應在某個類的頭文件中使用向前聲明來說起別的類,並在實現文件中引入哪些類的頭文件。這樣作能夠儘可能下降類之間的耦合。 *有時沒法使用向前聲明,好比要聲明某個類遵循一項協議。這種狀況下,儘可能把「該類遵循某協議」的這條聲明移至「class-continuation分類中」。若是不行的話,就把協議單獨放在一個頭文件中,而後將其引入。 */ @property (nonatomic,strong) EOCEmployer *employer; @end
// // EOCPerson.m // OC高效率52:類的頭文件中儘可能少引用其餘頭文件 // // Created by Zoujie on 15/10/8. // Copyright © 2015年 Zoujie. All rights reserved. // #import "EOCPerson.h" #import "EOCEmployer.h" @implementation EOCPerson @end
// // EOCEmployer.h // OC高效率52:類的頭文件中儘可能少引用其餘頭文件 // // Created by Zoujie on 15/10/8. // Copyright © 2015年 Zoujie. All rights reserved. // #import <Foundation/Foundation.h> @class EOCPerson; @interface EOCEmployer : NSObject -(void) addEmployee:(EOCPerson *)person; -(void) deleteEmployee:(EOCPerson *)person; @end
// // EOCEmployer.m // OC高效率52:類的頭文件中儘可能少引用其餘頭文件 // // Created by Zoujie on 15/10/8. // Copyright © 2015年 Zoujie. All rights reserved. // #import "EOCEmployer.h" #import "EOCPerson.h" @implementation EOCEmployer @end