import和@class

本文介绍了在Objective-C中使用import和@class关键字的区别。通过实例解释了如何避免因相互依赖导致的循环导入问题,并提供了何时使用@class而非import的指导。

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.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值