1. ホーム
  2. objective-c

[解決済み] BOOLプロパティの使用

2022-10-26 09:56:08

質問

Appleは、BOOLプロパティをこのように宣言することを推奨しています。

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

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

では、どこでもドット記法を使っている私が、なぜ余計なプロパティを定義する必要があるのでしょうか?単に

@property (nonatomic, assign) BOOL working;

と書くと、何かメリットがあるのでしょうか? getter=isWorking と書くメリットはあるのでしょうか?

ありがとうございます。

どのように解決するのですか?

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