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

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

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

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

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

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

    93820

    熟悉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的所有文件,有很多根本用不到的内容,反而增加了编译的时间 有时候必须在头文件引入其他头文件 如果你写的类, 集成某个类..., 则必须引入定义那个父类的头文件,或者是你声明的类遵从某个协议, 那么该协议必须有完整定义, 而且不能用向前声明, 向前声明只能告诉编译器有某个协议, 而此时编译器却需要知道该协议中定义的方法 参考

    17310

    引入BootStrap开发一个JSP项目

    这篇文章说两点,一是如何用BootStrap,二是了解分段写代码片的方法 1.引入BootStrap  首先去BootStrap中文官网阅读BootStrap的相关说明,以及下载BootStrap样式...之后在index.jsp引入css,然后就可以调用BootStrap中的一些css样式了,结合下面一部分内容进行综合讲解 ? 2. 分段写代码片的方法  这个方法也是今天上课老师讲到的。...结合BootStrap  下面就说一些BootStrap对于修饰表格的css,点开这个超链接能看到对于table有比较多的修饰,直接把这些引入到class中即可,例如 <table class = "table...还有很多的BootStrap样式,只要<em>引入</em>了BootStrap文件都可以用,还有一个开源前端框架,也是老师推荐的,叫LayUi

    3.9K20

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

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

    5.2K40
    领券