web-dev-qa-db-ja.com

BOOLプロパティを使用する

Appleは、次の方法でBOOLプロパティを宣言することをお勧めします。

@property (nonatomic, assign, getter=isWorking) BOOL working;

Objective-C 2.0のプロパティとドット表記を使用しているため、self.workingを使用してこのプロパティにアクセスします。 [self isWorking]を使用することもできますが、そうする必要はありません。

だから、私はどこでもドット表記を使用しているのに、なぜ追加のプロパティを定義する必要があるのですか?単純に書いてもいいですか

@property (nonatomic, assign) BOOL working;

または、私の場合、getter=isWorkingを書く利点がありますか(ドット表記の使用)。

ありがとう!

107
Patrick

Appleは、スタイル上の目的でisXゲッターを宣言することを単に推奨しています。正しい名前でドット表記またはメッセージ表記を使用する限り、ゲッター名をカスタマイズするかどうかは関係ありません。ドット表記を使用する場合、違いはありませんが、プロパティ名でアクセスできます。

@property (nonatomic, assign) BOOL working;

[self setWorking:YES];         // Or self.working = YES;
BOOL working = [self working]; // Or = self.working;

または

@property (nonatomic, assign, getter=isWorking) BOOL working;

[self setWorking:YES];           // Or self.working = YES;, same as above
BOOL working = [self isWorking]; // Or = self.working;, also same as above
199
BoltClock

Appleは文体的な目的のために推奨しています。このコードを書く場合:

@property (nonatomic,assign) BOOL working;

その場合、[object isWorking]は使用できません。
エラーが表示されます。しかし、以下のコードを使用すると

@property (assign,getter=isWorking) BOOL working;

したがって、[object isWorking]を使用できます。

4
Hariprasad.J