Cと同様に、Objective Cには名前空間がありません。誰かがすでに機能定義されている場合は、この手段があることfoo
や、クラスをBar
、それがグローバルに一意である必要があり、あなたはそれを定義することはできません。これにより、コードを作成してから別のライブラリを追加すると、突然頭がおかしくなり、多くの頭痛の種になります。
これについては、iOS開発者ライブラリの「Objective Cでのプログラミング:規則」セクションにAppleが提示したガイドラインがあります。
一部の名前はアプリ全体で一意でなければなりません
新しいタイプ、シンボル、または識別子を作成するたびに、名前が一意でなければならないスコープを最初に考慮する必要があります。このスコープは、リンクされたフレームワークを含むアプリケーション全体になる場合があります。場合によっては、スコープは囲みクラスまたはコードブロックのみに制限されます。
クラス名はアプリ全体で一意でなければなりません
Objective-Cクラスには、プロジェクトで記述しているコード内だけでなく、含めるフレームワークやバンドル全体で一意の名前を付ける必要があります。例として、ViewControllerやTextParserなどの汎用クラス名の使用を避ける必要があります。アプリに含めるフレームワークが規則に従わず、同じ名前のクラスを作成できない可能性があるためです。
クラス名を一意に保つために、規則はすべてのクラスでプレフィックスを使用することです。CocoaおよびCocoa Touchのクラス名は、通常NSまたはUIで始まることがわかります。これらのような2文字のプレフィックスは、フレームワーククラスで使用するためにAppleによって予約されています。CocoaとCocoa Touchについてさらに学習すると、特定のフレームワークに関連する他のさまざまな接頭辞に遭遇します。
...
独自のクラスでは、3文字のプレフィックスを使用する必要があります。これらは、会社名とアプリ名の組み合わせ、またはアプリ内の特定のコンポーネントに関連する場合があります。たとえば、あなたの会社がWhispering Oakと呼ばれ、Zebra Surpriseというゲームを開発している場合、クラスのプレフィックスとしてWZSまたはWOZを選択できます。
したがって、彼らはあなたが言及しているライブラリはこの規則を破るが、Objective C内の名前空間の欠如の問題の中心になります。
さらに読書
NSHipsterによって名前空間
に何がObjective-Cの名前空間の衝突を解決するための最良の方法ですか?
iOS Objective-Cコードで名前空間を使用する方法
;-)