#import与#include、@class有什么区别?

#import与#include、@class有什么区别?

#import与#include都是用来引入头文件的,与#include相比,Objective-C中#import的优势是不会重复引入头文件,相当于多了C/C++中#pragma once的作用,它可以保证头文件只被编译一次。

@class相当于 只是在头文件声明一下要用到的类的头文件(前向声明),告诉编译器有这样一个类的定义但暂时不要将类的实现引入,让该类定义的变量能够编译通过,直到运行起来时才去查看类的实现文件。但实际上这样也只能起到在头文件声明该实例变量的作用,在.m文件中,如果用到该类的实现细节(属性和方法),那么还是要通过#import再次引入类的头文件。使用@class的好处是将头文件的引入延迟了,至少延迟到了.m实现文件中,这样符合“直到真正用到的时候在确定引入”的动态思想,尽量往后拖延,更重要的是这样也可以有效地避免头文件的重复引入甚至循环引用等问题

#import< >与#import""又有什么区别?

#import<>与#import""的区别和C/C++中#include<>与#include""的区别一样:使用尖括号<>指的是用来引入系统的头文件,而使用引号""指的是用来引入本地用户的头文件,如果在本地文件中没找到头文件,那么会去系统文件中查找头文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值