2012-12-09 35 views
1

在蘋果documentation與類名稱不同,協議名稱不具有全局可見性。他們生活在自己的名字空間中。協議名稱空間在目標c中

這是什麼意思,因爲文檔沒有詳細說明它。我試過了,我做了兩個具有相同名稱的協議,但它們在不同的文件中編譯器顯示警告重複協議。 當我import在單一文件中的第一協議import隱藏其他協議雙方協議deceleration.So第一進口協議方法works.Other在警告

那麼這行mean.I我不能夠正確地理解它。

謝謝...

回答

1

在其他編程語言中,可以在不同的目錄或包中具有相同的類名。

在Objective C中,類名是全局的,因此沒有名稱空間的概念。名字必須是唯一的。不能有兩個Employee類。

但是對於協議,您可以在不同的文件中定義相同的協議,並根據您導入的文件,可以看到該協議。

如果您不導入該頭文件,則不知道該協議。 - 當它說「協議不具有全局可見性」時,這可能是文檔中的含義

同時,如果您有兩個相同協議的定義,則只會考慮第一個定義。事實上,編譯器會告訴你這個事實的一個明確的警告。

1

您能夠具有相同名稱的多個協議,但你不能在同一個類中使用。前者會隱藏後者。

+0

感謝您的迴應但我已經制作了兩個名稱相同的協議,但是編譯器給出警告'重複協議',並且當我將其導入同一個文件時,編譯器導入第一個並忽略其他。 – codester

+1

這就是我寫的,你不能使用相同的協議名稱是相同的文件(在這種情況下,它是命名空間)。您可以更改名稱或將您所需的協議方法添加到一個協議中。 –