@class和#import
@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相关推荐
- 安装 sklearn 报错 ImportError: cannot import name Type
1. 安装 sklearn sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple sklearn 会默认安装 joblib , s ...
- 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& ...
- python 使用import导入不同文件下的文件
1 导入2个相同目录的文件夹 现在有2个文件 test1 导入到test2 里面,由于不在同一个文件夹里面 不能直接使用import ,所以可以想指定 test1 的路径然后在import test1 ...
- Python import 的用法
我们刚开始接触python 看到了很多python 的很多库 比如添加log 的库logging import logginglogging.error("error:直接输入log日志&q ...
- 微信小程序import和include
import 和include 是微信小程序提供的2中引用方式 import 一般结合模板template使用 import import可以在该文件中使用目标文件定义的template,如: 在 i ...
- Android studio 自动导入(全部)包 import
1 Android studio 只有import单个包的快捷键:Alt+Enter.没有Eclipse下的快速导入包的快捷键Ctrl+Shift+O. 2 但android studio设置里有一 ...
- python import io_详解Python IO编程
文件读写 读文件 try: # windows下utf8 f = open('./README.md', 'r', encoding='utf8', errors='ignore') print(f. ...
- from . import_python首行代码import *,from * import * 解析
python代码,一般第一行代码都是import *或from * import *,作用是导入功能模块,然后利用模块内的函数编写代码,减少大量的代码编写时间,是python的一大特色.但是,在实际写 ...
- oracle 的 import,ORACLE import工具参数
import工具 windows中文界面: C:\Documents and Settings\yeyj>imp -help Import: Release 10.2.0.1.0 - Produ ...
- Java IDEA import sun.reflect.ConstructorAccessor报错
Java IDEA import sun.reflect.ConstructorAccessor报错 问题 解决 问题 报错如下图,发现是jdk版本的原因,如下是jdk: 11.0.6报错截图 解决 ...
最新文章
- mybatis简化实现思路
- 中文文本中的关键字提取算法总结
- 斯坦福大学马超:探寻「隐式偏差」的完整理论框架
- android studio修改项目包名
- ogre plugin for 3dmax 最新进度和功能说明
- 塑料封装可靠性问题浅析
- [视频]Google Chrome背后的故事
- linux,下载与安装
- 【我所認知的BIOS】—gt;ADU.exe
- 【Computer Organization笔记05】运算器基本功能,定点运算器,Am2901的组成与功能,VHDL硬件描述语言
- cxgrid 行合并单元格_Excel合并单元格无法筛选和排序,你必须掌握这3个小技巧...
- 通达信主力强势上涨预警副图指标公式(源码)
- 取消android所有动画,android – 动画取消动画
- lnmp一键安装包 安装php-fpm,为LNMP一键安装包下PHP编译安装fileinfo扩展
- 【竞赛篇-国创(大创)申报立项】国家级大学生创新创业训练计划申报经验
- String类-拆分字符串
- P1156 垃圾陷阱(背包dp)
- web端 小米商城网站总结
- webgl中顶点着色器的varying变量,使用方法。
- iOS 用户信息存储的工具类
热门文章
- php限制字符输入,.NET_asp.net(c#)限制用户输入规定的字符和数字的代码,一下是这个代码: 只允许 用 - phpStudy...
- linux病毒木马分析,Linux平台“盖茨木马”分析
- java工具集_Java 工具集
- springboot 打包_springboot项目打包上传至阿里云服务器
- linux oracle 关闭防火墙,Linux 下关闭防火墙设置
- fb50 sap 报记账码未定义_SAP隐秘的角落:记账代码Posting Key
- 【C++】多线程互斥锁、条件变量
- c 远程编辑linux文件,makefile - 在远程Linux机器上编译C ++ - “检测到时钟偏差”警告...
- c#获取对象的唯一标识_在 Java 中利用 redis 实现分布式全局唯一标识服务
- 第二章:1、函数求导