一、尽量使用模块方式与多类建立复合关系
实质上,#import也是复制、粘贴,这样就带来一个问题:当引用关系很复杂或一个头文件被非常多的实现文件引用时,编译时引用所占的代码量就会大幅上升(因为被引用的头文件在各个地方都被复制了一遍)。
二、预编译头文件(Pre-compiled Headers)处理方式——不实用
理论上讲,解决这个问题可采取C语言的方式,引入预编译头文件(Pre-compiled Headers,PCH),即把公用的头文件放入预编译头文件中预先进行编译
三、模块优点
(1)在使用框架的文件中添加#import。
(2)用框架写代码。
(3)编译。
(4)查看链接错误。
(5)忘记链接的框架。
(6)添加忘记的框架到项目中。
(7)重新编译。
一旦模块(Modules)功能开启,就可以在自己代码中使用它了。要这样做,对以前用到的语法有一点小小的改动,那用@import代替#import:
@import UIKit;
@import MapKit;
@import iAd;
要点
(1)#include和#import,其根本就是简单的复制、粘贴,将目标.h文件中的内容一字不落地复制到当前文件中,后者可以避免多次的重复引用。
(2)以预编译头文件的方式,虽可缩短编译时间,但其维护棘手,不利于广泛应用。
(3)模块功能,其应用不仅仅表现于编译的速度加快,同时在链接框架等方面也非常好用。
(4)启动模块功能后,编译器会隐式地把所有的#import都转换成@import。
网友评论