iOS中的#import和class区别
来源:互联网 发布:win7数据库在哪 编辑:程序博客网 时间:2024/05/29 05:06
转载自:http://www.189works.com/article-94451-1.html
下面来说一下#import同class之间的区别
在ios中我们经常会在.h和.m中引入一些类啊等等一般用的是#import来进行声明,你们可能也见到在.h文件进用@class来声明的,那么#import和@class进行声明 到底有什么的区别呢?下面我来说说
1.import会包含这个类的所有信息,包括实体变量和方法,而@class只告诉编 译器,声明的类的名称,至于这些类是如何定义的,暂时不用考虑,后面会再告诉你,所以在头文件中如果用@class声明某个类后,在.m的实现中如果用到声明类的具体方法或变量时还得再#import类
2.在.h头文件中进行声明时用#import的话,如果100个头文件都#import同一个头件,或者这些文件是依次引用的,如A->B,B->C,C->D,当最开始的那个头文件有变化后进行编译时,后面所有引用它的类都需要重新编译,如果引用最开始的头文件的类很多的话,那么这将耗费大量的时间,而用@class则不会,可能有人会想即然.h只是用@class只是简单的一个声明告编译器有这个类不让其报错,那么.m中要用到引入的类的方法和属性时,不还是要#import头文件一次,是的这个是对的,但编译器编译的时候只编译头文件的,所以你的.m中用#import与编译时间没太大关系
3.接下来说说什么时候该用@class,什么时候该用#import进行声明,
(1)一般如果有继承关系的用#import,如B是A的子类那么在B中声明A时用#import
(2) 另外就是如果有循环依赖关系,如:A->B,B->A这样相互依赖时,如果在两个文件的头文件中用#import分别声明对方,那么就会出现头文件循环利用的错误,这时在头文件中用@class声明就不会出错
(3)还有就是自定义代理的时候,如果在头文件中想声明代理的话如@interface SecondViewController:UIViewController时应用#import不然的话会出错误,注意XXXXDelegate是自定义的
- iOS中的#import和class区别
- #import和@class在IOS中的区别
- iOS #import和@class 区别
- iOS#import和@class区别
- ios中@class和 #import区别
- iOS中#import和@class的区别
- iOS中#import和@class的区别
- iOS中#import和@class的区别
- ios中的#include,#import和@class
- #import和@class在oc中的区别。
- #import和@class在oc中的区别。
- ios-@class和#import
- @Class和import区别
- @class 和 #import 区别
- iOS - @class ,#import" ",#import<>的区别
- IOS开发之----#import、#include和@class,#import<>, #import""的区别
- IOS #import与#include和@class的区别
- iOS杂记——#import和@class的区别
- 仿google、百度搜索框输入信息智能提示的实现 兼容主流浏览器
- Android 中的DisplayMetrics类的用法
- 从菜鸟到专家的五步编程语言学习法
- 形象说明UML中的包含与扩展的区别(转)
- Textarea
- iOS中的#import和class区别
- HTML5画图
- Phone 蓝牙通信编程(初级)
- C#泛型编程
- Shell与Perl脚本中的颜色控制
- 对string类型的分析(堆栈)
- 肤色检测(分割)via Random Forest
- TFS相关工具插件汇总
- 通向架构师的道路(第二十六天)漫谈架构与设计文档的写作技巧