《Effective Objective-C 2.0 编写高质量iOS与OS X的52个有效方法》读书总结
第一章 熟悉的Objective-C
第2条:在类的文件中尽量少引入其他头文件
类(class):
头文件(head file):后缀.h
实现文件(implementation file):后缀.m
引入头文件三种方式:
1.#import引入:
一些基本头文件,如框架类Foundation.h、UIKit.h,由于继承自框架中的某个类,可能会使用到其基类中的许多内容
需要实现属性、实例变量或者要遵循协议
2.#include引入
#include 与#import 类似,#import可以自动防止重复导入,一般情况下使用#import
3.@class关键字引入
只需知道类名而不用知道类中的细节, 即向前声明(forward declaring),将引用头文件的时机尽量延后,只在确有需要时才引入。
向前声明解决了两个类互相引用的问题。
除非确有必要,否则不要引入头文件。一般来说,应在某个类的头文件中使用向前声明来提及别的类,并在实现文件中引入那些类的头文件。这样子可以尽量降低类之间的耦合(coupling)。
有时无法使用向前声明,比如要声明某个类遵循一项协议。这种情况下,尽量把 “该类遵循某协议” 的这样声明移至 “class-continuation 分类中” 中。如果不行的话,就把协议单独放在一个头文件,然后将其引入。
“class-continuation 分类”,(class-continuation category)