@class

作用:

  可以简单的引用一个类

简单使用:

  @class Dog;

  仅仅是告诉编译器,Dog是一个类;并不会包含Dog这个类的所有内容

具体使用:

  在.h文件中使用@class引用一个类

  在.m文件中使用#import包含这个类的.h文件

作用上的区别

  #import会包含引用类的所有信息(内容),包含引用类的变量和方法

  @class仅仅是告诉编译器有这么一个类,具体这个类里有什么信息,完全不知道

效率上的区别

  如果有上百个头文件都#import了同一个文件,或者这些文件依次被#import,那么一旦最开始的头文件稍有改动,后面引用到这个文件的所有类都需要重新编译一遍,编译效率非常低

  相对而言,使用@class方式就不会出现这种问题了

其他使用场景

  对于循环依赖关系来说,比如A类引用B类,同时B类也引用A类

  这种嵌套包含的代码编译会报错

  当使用@class在两个类相互声明,就不会出现编译报错

转载于:https://www.cnblogs.com/saurik/p/4831380.html

@class和#import相关推荐

  1. 安装 sklearn 报错 ImportError: cannot import name Type

    1. 安装 sklearn sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple sklearn 会默认安装 joblib , s ...

  2. Anaconda3-5.0.1 输入ipython 出现 ImportError: cannot import name ‘create_prompt_application‘

    在 Windows 系统上安装 Anaconda3-5.0.1 版本后,输入 ipython 结果出现如下错误: (G:\Anaconda3-5.0.1\install) C:\Users\wohu& ...

  3. python 使用import导入不同文件下的文件

    1 导入2个相同目录的文件夹 现在有2个文件 test1 导入到test2 里面,由于不在同一个文件夹里面 不能直接使用import ,所以可以想指定 test1 的路径然后在import test1 ...

  4. Python import 的用法

    我们刚开始接触python 看到了很多python 的很多库 比如添加log 的库logging import logginglogging.error("error:直接输入log日志&q ...

  5. 微信小程序import和include

    import 和include 是微信小程序提供的2中引用方式 import 一般结合模板template使用 import import可以在该文件中使用目标文件定义的template,如: 在 i ...

  6. Android studio 自动导入(全部)包 import

    1  Android studio 只有import单个包的快捷键:Alt+Enter.没有Eclipse下的快速导入包的快捷键Ctrl+Shift+O. 2 但android studio设置里有一 ...

  7. python import io_详解Python IO编程

    文件读写 读文件 try: # windows下utf8 f = open('./README.md', 'r', encoding='utf8', errors='ignore') print(f. ...

  8. from . import_python首行代码import *,from * import * 解析

    python代码,一般第一行代码都是import *或from * import *,作用是导入功能模块,然后利用模块内的函数编写代码,减少大量的代码编写时间,是python的一大特色.但是,在实际写 ...

  9. oracle 的 import,ORACLE import工具参数

    import工具 windows中文界面: C:\Documents and Settings\yeyj>imp -help Import: Release 10.2.0.1.0 - Produ ...

  10. Java IDEA import sun.reflect.ConstructorAccessor报错

    Java IDEA import sun.reflect.ConstructorAccessor报错 问题 解决 问题 报错如下图,发现是jdk版本的原因,如下是jdk: 11.0.6报错截图 解决 ...

最新文章

  1. mybatis简化实现思路
  2. 中文文本中的关键字提取算法总结
  3. 斯坦福大学马超:探寻「隐式偏差」的完整理论框架
  4. android studio修改项目包名
  5. ogre plugin for 3dmax 最新进度和功能说明
  6. 塑料封装可靠性问题浅析
  7. [视频]Google Chrome背后的故事
  8. linux,下载与安装
  9. 【我所認知的BIOS】—gt;ADU.exe
  10. 【Computer Organization笔记05】运算器基本功能,定点运算器,Am2901的组成与功能,VHDL硬件描述语言
  11. cxgrid 行合并单元格_Excel合并单元格无法筛选和排序,你必须掌握这3个小技巧...
  12. 通达信主力强势上涨预警副图指标公式(源码)
  13. 取消android所有动画,android – 动画取消动画
  14. lnmp一键安装包 安装php-fpm,为LNMP一键安装包下PHP编译安装fileinfo扩展
  15. 【竞赛篇-国创(大创)申报立项】国家级大学生创新创业训练计划申报经验
  16. String类-拆分字符串
  17. P1156 垃圾陷阱(背包dp)
  18. web端 小米商城网站总结
  19. webgl中顶点着色器的varying变量,使用方法。
  20. iOS 用户信息存储的工具类

热门文章

  1. php限制字符输入,.NET_asp.net(c#)限制用户输入规定的字符和数字的代码,一下是这个代码: 只允许 用 - phpStudy...
  2. linux病毒木马分析,Linux平台“盖茨木马”分析
  3. java工具集_Java 工具集
  4. springboot 打包_springboot项目打包上传至阿里云服务器
  5. linux oracle 关闭防火墙,Linux 下关闭防火墙设置
  6. fb50 sap 报记账码未定义_SAP隐秘的角落:记账代码Posting Key
  7. 【C++】多线程互斥锁、条件变量
  8. c 远程编辑linux文件,makefile - 在远程Linux机器上编译C ++ - “检测到时钟偏差”警告...
  9. c#获取对象的唯一标识_在 Java 中利用 redis 实现分布式全局唯一标识服务
  10. 第二章:1、函数求导