#import和@class

来源:互联网 发布:sci造假数据会被发现吗 编辑:程序博客网 时间:2024/06/05 06:31

1、#import的作用

#import "Person.h" 的作用是将整个头文件copy一份到其他文件里替换这行代码(#import "Person.h"),这个copy操作是在编译器链接时进行的。如果这个头文件之后有所修改,那么再编译的时候编译器会再执行一次copy替换操作,所有包含这个头文件的文件(很可能不止一个)都会再copy并替换掉之前的,这会使得编译很慢。

2、@class的作用

@class Person 就是告诉编译器,Person是个类,可以用它来定义对象(到时候别给我报错!)。至于这个类都有什么属性、方法,那你编译器不需要知道。

技巧:在.h文件里使用别人写的类时,用@class Person 来提示编译器Person就是个类,我要用它定义对象。因为.h文件中一般不需要知道属性和方法。如果今后Person.h修改了,那么包含该.h的你自己的类头文件是不用再copy替换的,只有包含该.h的你自己的.m文件需要重新替换它,减少了编译时的工作量。

  在.m文件中使用别人写的类时则要使用#import "Person.h",因为.m中要用到这个类的属性和方法,所以编译器必须知道这些属性和方法。


注:如果你在.h文件里已经使用了#import "Person.h",那么在.m文件里就不需要再 #import "Person.h"了,因为自己写的本类的.h文件已经包含了Person类的详情。但是这个时候如果今后Person.h修改了,那么包含该.h的你自己的类头文件和.m文件都需要重新替换它,增加了编译器的工作量。


0 0