#include
它用于对系统自带的头文件的引用,编译器会在系统文件目录下去查找该文件。(注意重复引用)
#import
是Objective-C针对#include的改进版本,确保引用的文件只会被引用一次,不会陷入递归包含的问题中。
#import会链入该头文件的全部信息,包括实体变量和方法等。
#import<>用来包含系统自带的文件
#import""用来包含自定义的文件
@class
只是告诉编译器,其后面声明的名称是类的名称,不需要知道其内部的实体变量和方法。一般来说,@class是放在interface中的,只是为了在interface中引用这个类,把这个类作为一个类型来用的。 在实现这个接口的实现类中,如果需要引用这个类的实体变量或者方法之类的,还是需要import在@class中声明的类进来。
@protocol
Objective-C中的协议,本身不实现任何方法,只是声明方法,使用协议的类必须实现协议方法
关于delegate protocol 网上有一个例子讲的非常形象:
我上班的工作主要内容包括 (1)写代码(2)写文档(3)测试程序(4)接电话(5)会见客户
(1)(2)我自己全权负责,但是后面(3)(4)(5)我不想或者不方便自己做,所以我想找个助手(delegate)帮我做这些事,于是我定了一个招聘要求(Protocol),里写明我的助手需要会做(3)(4)(5)这三件事。很快,我招到一个助手。
即:我.delegate = 助手;
@interface
Objective-C中的接口,就是类的一个声明。
Objective-C中的类必须要有接口,但不一定都要有协议。