《Effective Objective-C 2.0 編寫高質(zhì)量iOS與OS X的52個有效方法》讀書總結(jié)
第一章 熟悉的Objective-C
第2條:在類的文件中盡量少引入其他頭文件
類(class):
頭文件(head file):后綴.h
實現(xiàn)文件(implementation file):后綴.m
引入頭文件三種方式:
1.#import引入:
一些基本頭文件,如框架類Foundation.h刺下、UIKit.h瀑梗,由于繼承自框架中的某個類讲婚,可能會使用到其基類中的許多內(nèi)容
需要實現(xiàn)屬性丛忆、實例變量或者要遵循協(xié)議
2.#include引入
#include 與#import 類似辐棒,#import可以自動防止重復(fù)導(dǎo)入绑改,一般情況下使用#import
3.@class關(guān)鍵字引入
只需知道類名而不用知道類中的細(xì)節(jié)常挚, 即向前聲明(forward declaring),將引用頭文件的時機(jī)盡量延后,只在確有需要時才引入鞋吉。
向前聲明解決了兩個類互相引用的問題鸦做。
除非確有必要,否則不要引入頭文件谓着。一般來說泼诱,應(yīng)在某個類的頭文件中使用向前聲明來提及別的類,并在實現(xiàn)文件中引入那些類的頭文件赊锚。這樣子可以盡量降低類之間的耦合(coupling)治筒。
有時無法使用向前聲明,比如要聲明某個類遵循一項協(xié)議舷蒲。這種情況下耸袜,盡量把 “該類遵循某協(xié)議” 的這樣聲明移至 “class-continuation 分類中” 中。如果不行的話牲平,就把協(xié)議單獨放在一個頭文件堤框,然后將其引入。
“class-continuation 分類”纵柿,(class-continuation category)