一.在.h头文件中尽量少引用其他.h头文件

1.好处:a减少编译时间;b.避免循环引用(如果用#include的话);c.减少依赖关系容易做SDK,供第三方调用
2.正确的例子(原则就是能不在头文件引用,就不在头文件引用)
a..h文件先用@class声明,.m文件里面在引入

//
//  AppDelegate.h
//
#import 
@classHuViewController;@interface AppDelegate : UIResponder @property (strong, nonatomic) UIWindow *window;@property (strong, nonatomic) HuViewController  *viewController;
@end

//使用的地方

//  AppDelegate.m
#import "HuViewController.h"
@interfaceAppDelegate ()
@end
@implementation AppDelegate
@end

b.如果需要引入协议,最好将协议单独放在一个头文件里(也便于复用)

//  HsTradeGpzyDefine.h
@class  HsGpzySelectContractPage;@protocol HsGpzySelectContractPageDelegate @optional- (void)tradeSelectContractPage:(HsGpzySelectContractPage *)page submitData:(id)data;
@end

//使用的地方

//  HsGpzySelectContractPage.m
#import "HsTradeGpzyDefine.h"
@interfaceHsGpzySelectContractPage ()
@property(nonatomic, assign) id delegate;
@end

c.如果委托类型协议不能单独放在一个文件里(因为要和委托类放一起)

/// @文件名称  HsPickerView.h
@protocol HsPickerViewDelegate @optional-(void)onSelectResponse:(NSDictionary*)params;
@end

@interface HsPickerView : UIPickerView 
{}
@property(nonatomic, assign) id backDelegate;
@end

//使用的地方

//  HsTradeGpzyCoverDetailPage.m
@interfaceHsTradeGpzyCoverDetailPage ()
@property(nonatomic, retain) HsPickerView *supplyStylePickerView;
@end
@implementation HsTradeGpzyCoverDetailPage
- (void) onSelectResponse:(NSDictionary*)params{   
}
@end

如果你发现本文对你有所帮助,如果你认为其他人也可能受益,请把它分享出去

你可能感兴趣的:(一.在.h头文件中尽量少引用其他.h头文件)