2017-07-18 3 views
0

Ich brauche deine Hilfe. Können Sie mir bitte beschreiben, was bedeutet { get } in dieser Aussage zu schreiben:Kurze Eigenschaft Getter Beschreibung in Swift

public var isLandscape: Bool { get } 

Ich meine es ganz einfach ist, dies zu verstehen ist eine schreibgeschützte Eigenschaft berechnet, aber was ich nicht verstehe, ist, warum Klammern nicht bringen können get Wort, denn wenn ich meine eigene berechnete Eigenschaft so erstellen möchte, sollte ich sie setzen und ihre return value beschreiben? Bedeutet es, dass Apple die Implementierung dieses Getters ausblenden und den read-only-Typ der Eigenschaft und nichts mehr anzeigen wollte?

+0

Wenn es aus den Antworten unten nicht klar war, hat dies nichts mit berechneten Eigenschaften zu tun, sondern lediglich, dass konforme Typen einen Getter für eine Eigenschaft namens 'isLandscape' haben müssen. Ich weiß, dass es der berechneten Eigenschaft ähnelt, aber dies ist nur eine Protokolldeklaration. Die tatsächliche Implementierung könnte eine gespeicherte Eigenschaft oder eine berechnete Eigenschaft sein. – Rob

Antwort

1

Diese Form der Deklaration einer Eigenschaft wird normalerweise verwendet, wenn eine protocol deklariert wird. Ich habe es auch in generierten Interfaces verwendet.

Im Falle eines Protokolls bedeutet dies, dass das konforme Objekt einen Getter für die Eigenschaft verfügbar machen sollte, aber eine Eigenschaft mit den Methoden get und set funktioniert.

+0

Danke, so sehr! – Dave

0

So sehen Eigenschaftsdeklarationen in Protokollen und in den generierten Schnittstellendateien für Swift-Klassen in Xcode aus.

Um dies zu sehen, wählen Sie eine Ihrer eigenen Swift-Klassendateien und öffnen Sie den Assistenten-Editor. Wählen Sie die Option für yourClassName (Schnittstelle) von Counterparts im Assistenten-Editor und Sie werden die gleiche Art von Eigenschaftsdeklarationen sehen.

Alle Apple-Klassendateien sind als Schnittstellen in Xcode dargestellt, so dass wir nicht mit Implementierungsdetails festgefahren sind.

Verwandte Themen