A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 选择天涯 中级黑马   /  2016-6-25 19:08  /  994 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#import 跟#include 有什么区别,@class呢, #import<> 跟 #import”"又什么区别?

3 个回复

正序浏览
这是送分题,多谢楼主
回复 使用道具 举报
好水啊,哈哈
回复 使用道具 举报
一.#include
1. 在C语言中,我们使用#include来引入头文件。使用#include “xx.h”来引入自定义的头文件,使用#include<xx.h>来引入库中的头文件。

2. 但是#include并不能防止重复引用头文件,如果在文件中,重复引用头文件,将会报错。(如:A引入了B,B引入了C,A再引入C,就会报错)

所以在OC中,几乎没有使用#incldue引头的情况。

另外,#include需要有用预处理指令来防止重复包含的问题

二 #import

1. #import是#include的升级版,可以防止重复引入头文件这种现象的发生。

2. #import在引入头的时候,就是完全将头文件拷贝到现在的文件中。所以也有效率上的问题。

3. #import最大的问题在于,需要避免出现头文件递归引入的现象。(如:A引入B,B引入A,那么A、B的头文件会互相不停的拷贝)

三. @class

1. @class用来告诉编译器,有这样一个类,使书写代码时,不报错。

2. 因为#import引入头文件有效率问题,所以,当还没有调用类中方法,仅仅是定义类变量的时候,使用@class来提醒编译器。而在真正需要调用类方法的时候,进行#import。

#import <>是引入系统的库文件,如一些框架
#import ""是引入我们自定义的头文件
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马