js_*_*js_ 10 iphone header objective-c ios
我是Objective-C/iOS编程的初学者.
我想制作一个头文件,其中包含我在项目中使用的所有类头.
并在每个类头文件中导入标头.
喜欢这个问题:
在同一个头文件中包含多个类
但这种方法是否会增加编译时间?
还是有其他缺点吗?
请告诉我导入标题的好方法.
Sha*_*rog 24
通常,新生成的iOS项目具有此功能,称为预编译头或前缀头,并且是具有扩展名的文件.pch.
你可以在那里抛出你想要的所有头文件,Xcode会在构建其他东西之前预先编译它,然后用它来编译项目中的其他编译单元(例如.m文件).
使用预编译头可能会也可能不会增加编译时间; 一般来说,只要你有很多公共标题和/或很多源文件,它就会缩短编译时间.
但是,将预编译的头文件视为一个大的转储基础并不一定是好的做法,因为当您可能希望在组件之间强制松散耦合时,您的编译单元可以形成对各种内容的隐式依赖关系.
一个标题中的所有类的问题是,每次更改类标题时,所有包含它的文件甚至间接都需要重新编译,而如果只导入所需的类,并且只在可以的时候使用@class需要重新编译直接使用该类的文件.因此,在第一种情况下,将会有比后者更多的汇编.这是我建议开始的方式.
但是,当您的代码变得更稳定并且类没有更改时,将它们全部放在一个头中可以缩短编译时间,因为预编译头将包含每个文件的相同信息.我要做的是当代码没有变化时,将成熟的类放入Framework中,Framework头将包含所有这些类.