首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OC代码规范2——在类的头文件中尽量少引入其他头文件

一般而言,引入的是系统库的文件,""引入的是本地工程的文件。...这里我说,在头文件中使用#import引入其他的类,很有可能会重复引入一些内容。可是通过前文我们可知,#import对比#include的一大优势就是不会重复引入相同的类。...所以,不要在当前类的头文件中使用#import引入其他的类,因为如果引入类的头文件中也import了其他的杂七杂八的类,那么当前类就会引入许多根本用不到的类,这势必会增加编译时间。...所以,在头文件中是用#import导入引入类,会导致如下两个问题: 1,可能会引入许多根本用不到的内容,增加编译时间; 2,容易引起循环导入,进而导致编译错误。...因此,我们在类的头文件中少使用import引入其他的头文件,而是使用@class来声明一个类。 以上。

2.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

使用向前声明减少引入其他头文件

向前声明(Forward declaring) @class Classname 旨在告诉编译器某个符号存在,解决当没有include该头文件时导致该符号不能被正确解析的问题。...头文件的引用问题 例子: // EOCCompany.h #import @interface EOCCompany: NSObject @property...而如果采用#import ,则一并引入该文件中所有内容,增加编译时间。...正确引用方法 因此,在实际应用中,应当在头文件中尽可能地不要引入其他头文件,而是采用向前声明@class EOCEmployee的方式告知编译器。...特殊情况 如果某个类需要遵循某个协议的时候,不能使用向前声明: 一则直接引用该协议所在头文件; 二则可以将协议写入单独的头文件引入头文件即可; 三则,可以将遵循协议的声明移到.m文件中。

89720

熟悉OC--2:在类的头文件中尽量少引入其他头文件

nonatomic,copy) NSString *lastName; @end #import "Person.h" @implementation Person @end 利用@Class在类的头文件中可以减少编译时间...当我们在实际工作中,可能需要创建一个名为Student的新类,然后在Person的类中应该有一个Student的属性,一般做法是引入在Person.h文件中引入Student.h #import <Foundation...,这样可以减少类的使用者所需引入头文件数量。...假设要是把Student.h引入到Person.h中,那么就会引入Student.h的所有文件,有很多根本用不到的内容,反而增加了编译的时间 有时候必须在头文件引入其他头文件 如果你写的类, 集成某个类..., 则必须引入定义那个父类的头文件,或者是你声明的类遵从某个协议, 那么该协议必须有完整定义, 而且不能用向前声明, 向前声明只能告诉编译器有某个协议, 而此时编译器却需要知道该协议中定义的方法 参考

15010

C++防止头文件被重复引入的3种方法!

———————— 1) 使用宏定义避免重复引入 在实际多文件开发中,我们往往使用如下的宏定义来避免发生重复引入: #ifndef _NAME_H #define _NAME_H //头文件内容 #endif...我们知道,#ifndef 是通过定义独一无二的宏来避免重复引入的,这意味着每次引入头文件都要进行识别,所以效率不高。...但考虑到 C 和 C++ 都支持宏定义,所以项目中使用 #ifndef 规避可能出现的“头文件重复引入”问题,不会影响项目的可移植性。...有关 _Pragma 操作符更多的功能和用法,本节不做详细讲解,这里仅介绍如何用 _Pragma 操作符避免头文件重复引入。...另外在某些场景中,考虑到编译效率和可移植性,#pragma once 和 #ifndef 经常被结合使用来避免头文件被重复引入

4.7K40

Linux的头文件和CC++的头文件

一、linux常用头文件如下: ------------------------- POSIX标准定义的头文件 目录项 文件控制 <fnmatch.h...为了便于使用,通常的做法是把同一类函数或数据结构以及常数的声明放在一个头文件(header file)中。头文件中也可以包括任何相关的类型定义和宏(macros)。...在程序源代码文件中则使用预处理指令“#include”来引用相关的头文件。   ...在一般应用程序源代码中,头文件与开发环境中的库文件有着不可分割的紧密联系,库中的每个函数都需要在头文件中加以声明。...对于标准C函数库来讲,其最基本的头文件有15个。每个头文件都表示出一类特定函数的功能说明或结构定义,例如I/O操作函数、字符处理函数等。

8.3K20
领券