import和@class
2013-10-30 14:12
211 查看
import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称
当有两个类A,类B。在类A.h中#import类B.h。然后当我们写类B的时候,我们又需要用到类A的时候。使用类A.h包含在类B.h中,这样当在编译的时候,编译器就会重复、循环地在A.h 和B.h中来回的加载。此时,我们可以使用这样来避免出现这种情况。
在类A.h中,我们可以包含类B.h,但在类B.h中当我们需要使用类A时,我们可以使用@class A,这只是告诉编译器,你为类B提供了一个类A的定义, 其它都没做。这样就不会存在重复循环调用了。
其实,在类A.h中如果不会用到类B时,只是在A.m中用到类B时,你可以在A.m中#import B.h,只有当需要在类A.h中要用到类B时,才使用@class B.
当有两个类A,类B。在类A.h中#import类B.h。然后当我们写类B的时候,我们又需要用到类A的时候。使用类A.h包含在类B.h中,这样当在编译的时候,编译器就会重复、循环地在A.h 和B.h中来回的加载。此时,我们可以使用这样来避免出现这种情况。
在类A.h中,我们可以包含类B.h,但在类B.h中当我们需要使用类A时,我们可以使用@class A,这只是告诉编译器,你为类B提供了一个类A的定义, 其它都没做。这样就不会存在重复循环调用了。
其实,在类A.h中如果不会用到类B时,只是在A.m中用到类B时,你可以在A.m中#import B.h,只有当需要在类A.h中要用到类B时,才使用@class B.
相关文章推荐
- 链表
- Linux中的MACH定义之MACHINE_START / MACHINE_END
- 点赞
- 验证(C#和正则表达式)
- SVM入门(一)至(三)Refresh
- 《编程之美》读书随笔之六:饮料供货
- 事务的嵌套
- 软基作业:二叉树的创建与遍历
- JAVA运行MYSQL的LOAD相关问题小结
- System 重定向
- 不是技术牛人,如何拿到国内IT巨头的Offer(未整理版本)
- asp.net自定义控件
- PHP类中子类调用父类方法
- 如何选择走过你生命中的100个女孩
- jQuery与Dom
- 安卓自测试题——第十四期
- jQuery与Dom
- 各种指针的定义
- DB2备份入库后,部分表空间数据无权限访问
- 凯撒密码加解密的方法