include,import,@class的区别

1.#include与#import功能一样,都是导入头文件

2.区别是#include是单纯导入头文件,如果重复导入头文件,头文件就被导入多分

3.#import在导入头文件之前会检查之前是否导入过,如果导入过,就不在编译。防止重复编译

4.#import只能在OC中使用,#include既能在OC中使用又能在C中使用

5.@class防止循环导入,告诉下面有这个类。

下面用例子来说明一下:有两个类,一个Boy,一个Girl

Girl类

#import <Foundation/Foundation.h>

@class Boy;

//下面有Boy这个类型

//如果发生循环引用问题,@Class解决.

//@Class是使用在.h文件中

//如果使用的Class就要在.m#import

@interface Girl : NSObject

{

    //Boy类型

    Boy *_boyFriend;

}

@end

#import "Girl.h"

#import "Boy.h"

@implementation Girl

@end

Boy类:

#import <Foundation/Foundation.h>

@class Girl;

//@class告诉下面有Gril这个类型

@interface Boy : NSObject

{

    Girl *_girlFriend;

}

@end

 #import "Boy.h"

#import "Girl.h"

@implementation Boy

 @end

转载于:https://www.cnblogs.com/zybdream/p/4629361.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值