4

Objective-C で適切な命名規則を使用して定数を定義していますが、インターネットで検索したところ、定数を定義するための 3 つの異なる命名規則が見つかりました。以下のもの。

NSString *const kModel_userID;
NSString *const k_model_user_id;
NSString *const kUserId;

これらをチェックして、Objective-C の定数の最適な方法を教えてください。コンベンションが好きなら、正当な理由を教えてください。また、他の慣習がある場合は、それも共有してください。ありがとう

4

1 に答える 1

7

プレフィックス + スコープ/クラス + 識別子/詳細 + サフィックス/ConstantType。

該当しないものは省略。

例:

// A NSNotification name, pertaining to NSApplication
NSApplicationWillBecomeActiveNotification
PrClass      Identifier      SuffxType

かなり慣用的で理解しやすい、IMO ;)

列挙型で同様のフォームを使用します。

// enum NSApplicationDelegateReply
NSApplicationDelegateReplySuccess
PrClass      Enum         Identifier

また、Apple や他社の API と競合する可能性を減らすために、3 文字以上の API のプレフィックスを選択する必要があることにも注意してください。

プレフィックスはk古い規則です。Core* フレームワークなど、OS X および iOSのC APIの多くでこれを見つけることができます。最近の Objective-C API ではあまり慣用的ではありません。一部のサードパーティ プロジェクトで使用されていますが、Objective-C では大文字の接頭辞の規則が最もよく認識されます。接頭辞付きの定数でさえ、k識別子を使用して API を「名前空間」にしますkCTLineTruncationStart。頭いい。

于 2013-09-30T10:46:11.997 に答える