Cocoa プロジェクトにおけるローカル BOOL
変数の命名規則についてお聞きしたいです。次のうちどれが好ましいですか?
// Style #1
BOOL isNightModeEnabled = NO;
// Style #2
BOOL nightModeEnabled = NO;
ありがとう!
Cocoa プロジェクトにおけるローカル BOOL
変数の命名規則についてお聞きしたいです。次のうちどれが好ましいですか?
// Style #1
BOOL isNightModeEnabled = NO;
// Style #2
BOOL nightModeEnabled = NO;
ありがとう!
もう少しだけ考えてみてください。
BOOL
Apple 独自の Cocoa メソッドは、引数として使用される変数にプレフィックスを付けません。
... whenHighlighted:(BOOL)highlighted
... animated:(BOOL)animated
同じことが、セッターに対する Xcode のオートコンプリートにも当てはまります。そのため、ローカル変数の前に を付けるのは得策is
ではないようです。したがって、ローカル変数ではなく、 gettersの命名規則として using が適しています。is
is
スタイル 2 は良いです。プロパティと KVO スタイルの名前が読みやすくなります。
-(void)setNightModeEnabled;
-(BOOL)nightModeEnabled;
また
@property (assign, nonatomic, getter=isNightModeEnabled) BOOL nightModeEnabled;
ドキュメントを確認してください: Cocoa Naming のガイドライン。
私の個人的な好みは次のとおりです。
bool isNightModeEnabled = false;
「is」を入れると、英語のように読みます。
BOOL
Cocoa 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
代わりにだった場合、キャストは期待どおりに機能します。