"getter" -Schlüsselwort in @property-Deklaration in Objective-C?

8

Ich habe bemerkt, dass ein Codebeispiel in der Apple-Dokumentation den folgenden Stil bei der Deklaration der Eigenschaft zeigt:

%Vor%

Ich verstehe, dass Sie damit einen bestimmten Namen für Ihre Getter-Methode angeben können. Ich würde gerne wissen, was der Grund und der Vorteil dieses Stils ist.

Kann ich die Punktnotation verwenden, um den Wert zu erhalten (z. B. BOOL aBool = someObject.isActivated)? Oder soll ich ein [someObject isActivated]; verwenden? Zugang zu der Immobilie? Danke!

    
saurb 26.08.2011, 21:53
quelle

2 Antworten

10

Nein, das Schlüsselwort getter ändert nur den Methodennamen. Die Idee ist, dass Sie wie eine Variable auf die Eigenschaft zugreifen:

%Vor%

Wenn Sie jedoch eine Nachricht an das Objekt senden, ist der Code lesbar: if ([self isActivated]) { ... } .

    
jtbandes 26.08.2011, 23:55
quelle
4

Art von letzterem. Sie müssen die Methode nicht verwenden - der Aufruf von someObject.activated funktioniert immer noch -, aber Sie können damit die Semantik Ihrer Klassenschnittstelle verbessern. Eine Methode namens -activated könnte den Wert des ivar activated zurückgeben oder etwas esoterischer (wie das Aktivieren des Objekts); isActivated gibt eindeutig einen booleschen Wert zurück, ob das Objekt "aktiviert" ist oder nicht.

    
Noah Witherspoon 26.08.2011 21:57
quelle

Tags und Links