ios头文件

在OC中使用“头文件”与“实现文件”来区隔代码。头文件后缀用.h,实现文件后缀用.m。

在编译文件时,引入其他的文件时,需加入#import "xxxxxx.h"这句话。这种变化可行,但是不够优雅。因为在很多时候我们只需要知道有一个类叫这个名就好,而不需要知道此类的全部细节。所以我们需要这样写@class xxxxxx; 这叫做“向前声明”(forward declaring)该类。然而在实现文件中则需引入此类的头文件,因为若要使用此类,则必须知道其所有得接口细节。将引入头文件的时机尽量延后,只在确有需要时才引入,这样就可以减少类的使用者所需引入的头文件数量。

当解析一个头文件时,如果此头文件中有一个文件又引用了这个要解析的头文件。使用#import而非#include指令虽然不会导致死循环,但这两个类里有一个将会无法被正确编译。如果当前类继承自某个超类,或者要声明此类遵从某个协议(protocol),那么就不能用向前声明。向前声明只能告诉编译器有某个协议,而此时编译器要知道该协议中定义的方法。所以只能用#import

一般来说,应在某个类的头文件中使用向前声明来提及别的类,并在实现文件中引入那些类的头文件。这样做可以尽量降低类之间的耦合。

#import#include

在 Objective-C 中,#import代替C语言中的#include来使用。除此之外,#import确定一个文件只能被导入一次,不会出现交叉引用的问题。一般来说,在导入 Objective-C 头文件的时候使用#import,包含C语言头文件时使用#include

 
 
 
posted @ 2014-10-23 19:36  Alex.xue  阅读(439)  评论(0编辑  收藏  举报