3

Cocoa プロジェクトにおけるローカル BOOL変数の命名規則についてお聞きしたいです。次のうちどれが好ましいですか?

// Style #1
BOOL isNightModeEnabled = NO;

// Style #2
BOOL nightModeEnabled = NO;

ありがとう!

4

3 に答える 3

2

もう少しだけ考えてみてください。

BOOLApple 独自の Cocoa メソッドは、引数として使用される変数にプレフィックスを付けません。

... whenHighlighted:(BOOL)highlighted
... animated:(BOOL)animated

同じことが、セッターに対する Xcode のオートコンプリートにも当てはまります。そのため、ローカル変数の前に を付けるのは得策isではないようです。したがって、ローカル変数ではなく、 gettersの命名規則として using が適しています。isis

于 2013-03-30T15:18:23.327 に答える
1

スタイル 2 は良いです。プロパティと KVO スタイルの名前が読みやすくなります。

-(void)setNightModeEnabled;
-(BOOL)nightModeEnabled;

また

@property (assign, nonatomic, getter=isNightModeEnabled) BOOL nightModeEnabled;

ドキュメントを確認してください: Cocoa Naming のガイドライン

于 2013-03-30T14:56:08.503 に答える
0

私の個人的な好みは次のとおりです。

bool isNightModeEnabled = false;

「is」を入れると、英語のように読みます。

BOOLCocoa API で必要な場合を除いて、私は常に Apple のブール型よりも C99 ブール型を使用しています。これはBOOL、ブール値にとって問題になる可能性のある char の typedef にすぎないためです。たとえば、次の単体テストは失敗しますが、C に期待するものではありません。

-(void) testBool
{
    int a = 513;
    int b = 257;
    STAssertTrue(a - b, @"Should be true");
}

その理由は、a - b が 256 であり、BOOLパラメーター型にキャストダウンすると、ゼロ以外のすべてのビットが失われるためです。の最初のパラメーターSTAssertTrue()bool代わりにだった場合、キャストは期待どおりに機能します。

于 2013-04-01T09:08:38.237 に答える