最近在看一本書,分享一下關于程序的一些小細節優化問題.
在OC代碼中,能使用不可變的對象,就盡量使用不可變的對象.
- 程序的性能優化,在于代碼的一點點積累.一點一滴的優化,加起來也是不可忽視的.
關于頭文件,協議的優化
在我們導入頭文件的時候,在不必要的時候導入頭文件,不要使用
#import
,使用@class
,這樣可以提高程序的執行時間.若要使用者必須要知道其所有接口的細節的時候,在使用
#Import
.將引入頭文件的時機盡量延后,只要確有需要時才引入,這樣可以減少類的使用者所需引入的頭文件數量.此過程要持續下去,則要引入許多根本用不到的內容,這樣當然會增加編譯時間.
如果兩個文件使用
#Import
互相引用了,不會出現想#Include
出現死循環,但卻意味這兩個類有一個無法被正確編譯如果你寫的類繼承自某一個超類,則必須引入定義那個超類的頭文件,同理,如果要聲明你寫的類遵從了某一個協議,那么該協議必須有完整定義,并不能使用向前聲明.
如果當前協議不是委托協議,可以把協議放在一個單獨的頭文件中.
有時無法使用向前聲明,比如要聲明摸一個類遵循一項協議.這種情況下,盡量把改類遵循的某協議 的這條聲明移至** 分類** 中.如果不行的話,就把協議單獨放在一個頭文件中,然后將其引入.