#import,#include与@class的区别

1.
#include是C中用来引用文件的关键字,而#import是obj-c中用来代替include的关键字。#import可以确保同一个文件只能被导入一次,从而避免了使用#include容易引起的重复引用问题,即classA引用了classC,classB也引用了classC,而当classD同时引用classA,classB的时候就会报重复引用的错误。

2.
#import""与#import<>:#import""实现从当前工作目录中找要导入的文件,如果没有再到系统类库中找,而#import<>是直接从系统类库中找要导入的文件。

3.
#import与@class:

@class只是告诉编译器,后面遇到的这个名称是一个类名称,至于这个类是如何实现的暂不用考虑。引入@class主要是用来解决引用死锁--如果两个类存在循环依赖关系,即A->B,B->A,如果用#import来相互包含,就会出现编译错误:
Expected specifier-qualifier-list before ‘A’或者Expected specifier-qualifier-list before ‘B’。

一般情况下,在 .h文件中,只需要知道类的名字就可以了,所以用@class,而在 .m文件中通常需要知道类的成员变量即方法,所以要用#import来将类文件导进来。

那为什么不在 .h文件中直接用#import来将类文件导入呢,因为如果导入大量的头文件,编译器就会花大量的时间来编译。

需要在 .h文件中用#import的情况:
1/如果有继承关系的要用#import,如,A继承B,需要在A中将B import进来。
2/使用有category的类,需要在 .h文件中用#import将该类的category导进来。

#import,#include与@class的区别

时间: 2024-08-11 01:34:22

#import,#include与@class的区别的相关文章

iOS import,include和class的区别

#import 确定一个文件只能被导入一次,这使你在递归包含中不会出现问题 . import会包含这个类的所有信息,包括实体变量和方法(.h文件中) 在m文件中还是需要使用#import 一般如果有继承关系的用#import #import比起#include的好处就是不会引起交叉编译. 一般来说,导入objective c的头文件时用#import, 2. 能在实现文件中#import,就不在头文件中#import. 包含c/c++头文件时用#include. @class只是告诉编译器,其后

#include #import @class 的一些用法区别

从网上查了一些资料,整理了一下,发现很多都说的比较详尽,下面摘录自网络 说一下#import同class之间的区别 在ios中我们经常会在.h和.m中引入一些类啊等等一般用的是#import来进行声明,你们可能也见到在.h文件进用@class来声明的,那么#import和@class进行声明 到底有什么的区别呢? 1. import会包含这个类的所有信息,包括实体变量和方法,而@class只告诉编译器,声明的类的名称,至于这些类是如何定义的,暂时不用考虑,所以在头文件中如果用@class声明某个

iOS 中 #import同@class之间的区别

很多刚开始学习iOS开发的同学可能在看别人的代码的时候会发现有部分#import操作写在m文件中,而h文件仅仅使用@class进行声明,不禁纳闷起来,为什么不直接把#import放到h文件中呢? 这是因为h文件在修改后,所有import该h文件的所有文件必须重 新build,因此,如果把#import写在h文件中,import该h文件的文件也就会产生不必要的编译,增加编译时间,特别是在项目文件多的情况 下.想象一下,如果只是修改一个h文件而导致上百个文件不必要的编译,那是一件多么让人纠结的事情.

PHP中include和require的区别详解

1.概要  require()语句的性能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估:而对于require()来说,文件只处理一次(实际上,文件内容替换require()语句).这就意味着如果可能执行多次的代码,则使用require()效率比较高.另外一方面,如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用include()语句. require的使用方法如:require("myfil

include和require的区别

细节决定成败! 1.引用文件方式 对include()来说,在include()执行时文件每次都要进行读取和评估:而对于require()来说,文件只处理一次(实际上,文件内容替换了require()语句).这就意味着如果有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高.另一方面,如果每次执行代码时相读取不同的文件,或者有通过一组文件叠代的循环,就使用include(),因为可以给想要包括的文件名设置一个变量,当参数为include()时使用这个变量. 2.是否有

包含文件函数include与require的区别

include或include_once一般用于动态包含,所谓动态包含就是根据不同条件包含不同文件 require或require_once一般用于静态包含,比如包含一个html文件的头部或者尾部 如:require_once footer.inc.php include和require可以包含多次,include_once和require_once只包含一次 包含文件函数include与require的区别,布布扣,bubuko.com

#include&lt;iostream&gt;与#include&lt;iostream.h&gt;的区别

                                     转载于祝长洋的BLOG:http://blog.sina.com.cn/s/blog_514b5f600100ayks.html                                      这两者都有什么不同呢?首先,5年前我们就开始反对把.h符号继续用在标准的头文件中.继续使用过时的规则可不是个好的方法.从功能性的角度来讲,包含了一系列模板化的I/O 类,相反地只仅仅是支持字符流.另外,输入输出流的C++标

关于require,require_once,include和include_once的区别

一.定义 require,require_once,include,include_once都属于PHP的关键字,也就是说它们实际都是PHP的语句,而不是函数,类似于print,echo一样,也是PHP种的输出语句,而不是函数.但在更多的时候,大家都常称作函数. 二.用法 require 'test.php',require_once 'test.php',或者require('test.php'),require_once('test.php')这样的写法都是可以的,include也是如此.它

php中的include和require的区别

主要关注红色标记语句即可. The include (or require) statement takes all the text/code/markup that exists in the specified file and copies it into the file that uses the include statement. Including files is very useful when you want to include the same PHP, HTML,