2016-05-23 15 views
3

Ich sah nur diese in der Quelle Apple:ObjC berechnete Eigenschaft vs Methode

@property (readonly, copy) NSString *uppercaseString; 

So eine Zeichenfolge in Großbuchstaben ein

tun würde
@"sdfks".uppercaseString; 

Gibt es einen Vorteil, es auf diese Weise zu tun und nicht nur ein Verfahren

- (NSString *) uppercaseString; 

ich bin sicher, es ist die gleiche, aber ich möchte wirklich wissen, warum Sie die Read-only-Variante verwenden Sie stattdessen würde Methode oder anders herum.

+0

Ja, es ist das gleiche, es ist nur eine viel bequemere Möglichkeit, den Getter und Setter zu deklarieren und die Implementierung kann automatisch generiert werden. – trojanfoe

Antwort

2

So oder so, Sie verwenden eine Methode.

Objective-C Eigenschaften auf ein Verfahren einkochen (oder ein Paar von Verfahren zur einstellbaren Eigenschaften), die Sie mit Hilfe von zwei alternativen Arten von Syntax aufrufen können - der Punkt-Syntax

@"sdfks".uppercaseString 

und der regulären Methodenaufruf Syntax

[@"sdfks" uppercaseString] 

Dot-Syntax wird bequemer, wenn Sie durch andere Methode aufruft, erzeugt Eigenschaften von Objekten zugreifen müssen:

person.address.city.uppercaseString 

Syntax hat weniger Interpunktion als

[[[person address] city] uppercaseString] 

und aus diesem Grund kann optisch ansprechender zu einigen Programmierer sein.

Verwandte Themen