12

Apple の Objective-C のドキュメント、リファレンス、および生成されたコードは、Apple のコーディング スタイルと完全に一致していないようです。Objective-C と Cocoa のソース コードの「推奨」スタイル (存在する場合) を判断できません。

これが私がこれまでに遭遇したものです。

タブ設定

Xcode のデフォルト設定はタブに設定されています。ただし、生成されたプロジェクトは、タブの設定に関係なく、常に 4 つのスペースで作成されます。さらに悪いことに、生成されたコードの一部にタブがぶら下がっています。ダウンロードされたコード例もプロジェクトごとに異なるようです。

メソッド定義の間隔

Apple のサンプル コードでは、メソッド定義のさまざまなスタイルが 1 つのファイル内でも異なります。しかし、スペースの最も一般的なスタイルには、-or+とスペースの間にスペースが含まれているようです。このスタイルは Xcode 参照ライブラリでも使用されているため、これが好ましいスタイルだと思います。

- (IBAction)reloadData:(id)sender;
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex

一貫性のない変量:

- (IBAction) reloadData:(id)sender;
- (IBAction)reloadData:(id) sender;
-(IBAction)reloadData:(id)sender;
- (IBAction) reloadData: (id)sender;
- (id)tableView: (NSTableView *)aTableView objectValueForTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex

ブレース スタイル

広く矛盾しているもう 1 つの点は、ブレース スタイルです。2 つの一般的なスタイルがあります。

ブレースを独自の行で開きます。

  @interface Foo : NSObject
  {
  }

  - (id)init
  {
  }

メソッド宣言と同じ行で中かっこを開きます。

  @interface Foo : NSObject {
  }

  - (id)init {
  }

質問

Apple が推奨する Objective-C のコーディング スタイルはありますか? そうでない場合、どのスタイルが好きですか? またその理由は何ですか?

4

1 に答える 1

9

生成されたプロジェクトを常に自分の好みのスタイルに設定していることがわかったので、テンプレート ファイルを自分の好み (インデント用のタブ、独自の行に中括弧) に合わせて編集しました。ファイルは次のとおりです。

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/

すべてを選択し、cmd-[ ですべてのインデントを取り除き (ドキュメントが必要とする回数だけ)、[編集] -> [書式] -> [再インデント] を実行します。便宜上、これを shift-cmd-[ に接続しました。

サンプルコードとプロジェクトテンプレートのスタイルの違いを見てきましたが、それはファイルの年齢が異なるためだと思いました. 変更されたさまざまな内部コーディング スタイル ガイドがあったと思います。

Google Obj-C スタイル ガイドは次のとおりです。

http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml

CocoaDevCentral からのもう 1 つの素晴らしいもの:

http://www.cocoadevcentral.com/articles/000082.php

Apple の規則に本当に従いたい場合は、Objective C プログラミング ガイドに、規則を利用するためのコード例がたくさんあります。

https://developer.apple.com/library/mac/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/

于 2009-07-03T06:17:22.750 に答える