Objective-C沒有其他語言那種內(nèi)置的命名空間 (namespace) 機制. 鑒于此, 我們在起名時要設(shè)法避免潛在的命名沖突, 否則很容易就重名了. 如果發(fā)生命名沖突 (naming clash), 那么應(yīng)用程序的鏈接過程就會出錯, 因為其中出現(xiàn)了重復(fù)符號:
duplicate symbol _OBJC_METACLASS_$_EOCTheClass in:
? ? build/something.o
? ? build/something_else.o
duplicate symbol _OBJC_CLASS_$_EOCTheClass in:
? ? build/something.o
? ? build/something_else.o
錯誤原因在于, 應(yīng)用程序中的兩份代碼都各自實現(xiàn)了名為 EOCTheClass 的類, 這導(dǎo)致 EOCTheClass 所對應(yīng)的類符號和"元類"符號各定義了兩次
個人開發(fā)者添加的前綴必須為3個字母(2個字母的前綴為蘋果公司獨有)
給C實現(xiàn)函數(shù)添加前綴(因為C函數(shù)名會作為頂級符號,出現(xiàn)在符號表中)