第二篇: 在类的头文件中尽量少引入其他头文件

第二篇: 在类的头文件中尽量少引入其他头文件

0、介绍
  1. 与C和C++一样, Objective-C也使用 “头文件” 与 “实现文件” 来去个代码。Objective-C语言编写”类”的标注方式为: 以类名做文件名, 分别创建两个文件, 头文件后缀用.h, 实现文件后缀用.m。
#include 和 #import 的区别, #import 具有防止重复引用的功能。在使用C语言时, 通常适用宏定义防止重复引用。
1、@class ClassName 的使用
  1. 头文件中引用 在头文件中声明某个类的对象时, 需要告诉编译器此类存在, 但又不需要知道类的全部细节。此时可以使用 “@class ClassName” 告诉编译器。这叫做: “向前声明”。(如果你写的类继承自某个超类, 则必须引入定义那个超类的头文件)
  2. 实现文件中引用 在实现文件中则需要引入类的头文件, 因为在实现文件中需要使用类的细节。
  3. 注意: 将引入头文件的时机尽量延后, 只有在确有需要时才引入, 这样就可以减少类的使用者所引入头文件数量。以减少程序的编译时间。
2、@class 和协议
  1. 同样如果要生命你写的类遵循某个协议, 那么该协议必须有完整定义, 且不能使用向前声明。向前声明只能告诉编译器有某个协议, 而此时编译器却要知道协议中定义的方法。 这样, 最好把协议单独放在一个头文件中. 要是把协议放在莫讴歌大得头文件里, 那么只要引入此协议, 就必定引入那个头文件中的全部内容, 这样就会产生相互依赖问题。 然而有些协议, 例如 “委托协议” 就不能单独写一个头文件。在这种情况下, 委托只有与协议委托的类放在一起定义才有意义。此时最好能再实现文件中声明此类实现了该类实现了委托协议, 并把这段实现代码放在”分类”里。这样的话, 只要在实现文件中引入包含委托协议的头文件即可, 而不需要将其放在公共头文件里。
3、注意
  1. 每次在头文件中引入其它头文件之前, 都要先问问自己这样做是否有必要. 如果可以向前声明取代引入, 那就不要引入。若因为要实现属性、示例变量或者要遵循协议而必须引入头文件, 则应尽量将其移至”分类”中. 这样做不仅可以缩减编译时间, 而且还能降低彼此依赖程度。若使依赖关系过于复杂, 则会给维护带来麻烦。
4、要点
    1. 一、除非确实有必要, 否则不要引入头文件。一般来说, 应该在某个类的头文件中使用向前声明, 并在实现文件中引入类的头文件。这样做可以尽量降低类之间的耦合。

    1. 二、有时候无法使用向前声明, 百日要声明某个类遵循一项协议。这种情况喜爱, 尽量把 该类遵循某项系协议 的声明移至 “分类” 中。如果无法实现, 就把协议单独放在一个头文件中, 然后将其引入。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值