最近在看一本书,分享一下关于程序的一些小细节优化问题.
在OC代码中,能使用不可变的对象,就尽量使用不可变的对象.
- 程序的性能优化,在于代码的一点点积累.一点一滴的优化,加起来也是不可忽视的.
关于头文件,协议的优化
在我们导入头文件的时候,在不必要的时候导入头文件,不要使用
#import
,使用@class
,这样可以提高程序的执行时间.若要使用者必须要知道其所有接口的细节的时候,在使用
#Import
.将引入头文件的时机尽量延后,只要确有需要时才引入,这样可以减少类的使用者所需引入的头文件数量.此过程要持续下去,则要引入许多根本用不到的内容,这样当然会增加编译时间.
如果两个文件使用
#Import
互相引用了,不会出现想#Include
出现死循环,但却意味这两个类有一个无法被正确编译如果你写的类继承自某一个超类,则必须引入定义那个超类的头文件,同理,如果要声明你写的类遵从了某一个协议,那么该协议必须有完整定义,并不能使用向前声明.
如果当前协议不是委托协议,可以把协议放在一个单独的头文件中.
有时无法使用向前声明,比如要声明摸一个类遵循一项协议.这种情况下,尽量把改类遵循的某协议 的这条声明移至** 分类** 中.如果不行的话,就把协议单独放在一个头文件中,然后将其引入.