web-dev-qa-db-ja.com

iOS / OSXオープンソースプロジェクトの命名規則

常にというわけではありませんが、ほとんどの場合、iOSまたはMac OS Xのオープンソースプロジェクトでは、著者の姓名で始まる名前で始まります。プロジェクトがNick Leblancによって作成される場合、プロジェクトはNLMyProjectとして読み取られます。

例:

それはどこから来たのですか?最初に一人がこのように書いて、それから他の全員がそれに続きましたか?

Appleのガイドライン でも、何も見つかりませんでした。そのイディオムはどこかに書かれていますか?

12

Cと同様に、目的Cには名前空間がありません。つまり、誰かが関数fooまたはクラスBarをすでに定義している場合、それはグローバルに一意である必要があり、 you はそれを定義できません。これにより、コードを作成してから別のライブラリを追加したときに多くの頭痛の種になる可能性があり、突然、奇妙な場所で問題が発生します。

is によって提示されたガイドラインAppleこのため Programming with Objective C:Conventions セクションにあります):

一部の名前はアプリ全体で一意である必要があります

新しいタイプ、シンボル、または識別子を作成するたびに、名前が一意である必要があるスコープを最初に検討する必要があります。このスコープは、リンクされたフレームワークを含むアプリケーション全体の場合もあります。スコープは、囲んでいるクラスまたはコードのブロックだけに制限される場合があります。

クラス名はアプリ全体で一意である必要があります

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コードで名前空間をどのように使用しますか?

16
user40980