web-dev-qa-db-fra.com

Utiliser une propriété BOOL

Apple recommande de déclarer une propriété BOOL de cette manière:

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

Comme j'utilise les propriétés Objective-C 2.0 et la notation par points, j'accède à cette propriété en utilisant self.working. Je sais que je pourrais aussi utiliser [self isWorking] - mais je ne suis pas obligé.

Donc, comme j'utilise la notation par points partout, pourquoi devrais-je définir une propriété supplémentaire? Serait-il possible d'écrire simplement

@property (nonatomic, assign) BOOL working;

Ou ai-je des avantages à écrire getter=isWorking dans mon cas (utilisation de la notation par points)?

Merci!

107
Patrick

Apple recommande simplement de déclarer un isX getter à des fins stylistiques. Peu importe que vous personnalisiez le nom du getter ou non, tant que vous utilisez la notation par points ou la notation par message avec le nom correct. Si vous utilisez la notation pointée, cela ne fait aucune différence, vous y accédez toujours par le nom de la propriété:

@property (nonatomic, assign) BOOL working;

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

Ou

@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 recommande à des fins stylistiques.Si vous écrivez ce code:

@property (nonatomic,assign) BOOL working;

Ensuite, vous ne pouvez pas utiliser [objet isWorking].
Il affichera une erreur. Mais si vous utilisez le code ci-dessous signifie

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

Vous pouvez donc utiliser [object isWorking].

4
Hariprasad.J