博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
#import和@class在IOS中的区别
阅读量:3680 次
发布时间:2019-05-21

本文共 517 字,大约阅读时间需要 1 分钟。

1.#import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,在编译的时候,告诉编译器,这是一个类名,无需报错。

2.在头文件中, 一般只需要知道被引用的类的名称就可以了。 不需要知道其内部的实体变量和方法,所以在头文件中一般使用@class来声明这个名称是类的名称。 而在实现类里面,因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件。

3.在编译效率方面考虑,如果你有100个头文件都#import了同一个头文件,或者这些文件是依次引用的,如A–>B, B–>C, C–>D这样的引用关系。当最开始的那个头文件有变化的话,后面所有引用它的类都需要重新编译,如果你的类有很多的话,这将耗费大量的时间。而是用@class则不会。

4.如果有循环依赖关系,如:A–>B, B–>A这样的相互依赖关系,如果使用#import来相互包含,那么就会出现编译错误,产生死循环的问题。如果使用@class在两个类的头文件中相互声明,则不会有编译错误出现。

综上所述.@class一般出现在头文件中.#import一般出现在实现,也就是.m中.

转载地址:http://mqgbn.baihongyu.com/

你可能感兴趣的文章
3. Shiro 授权
查看>>
Git 版本管理
查看>>
Git 工作区和暂存区
查看>>
MyBatis Plus 3.X 通俗易懂版教程
查看>>
Java 实现冒泡排序
查看>>
JMeter 工具安装、环境配置、中文设置
查看>>
mysql 遇到此问题解决办法:Expression #7 of SELECT list is not in GROUP BY clause and contains nonaggre
查看>>
多线程之线程礼让
查看>>
IDEA创建类的同时自动添加类注解
查看>>
多线程之守护线程
查看>>
多线程之Lock锁
查看>>
多线程之线程池
查看>>
Java中的注解
查看>>
Shiro入门实战【附源码】
查看>>
Java如何实现二维码?【附源码】
查看>>
JVM遇到OOM如何排错,如何使用工具分析问题所在,这篇文章告诉你!
查看>>
JeecgBoot部署到服务器后加载速度较慢解决方案
查看>>
Java 中一个元素在集合中如何忽略自己循环比对是否存在相同元素
查看>>
JAVA如何计算字符串公式
查看>>
Java 实现 crc modbus 16 位校验算法
查看>>