Ich habe einige Nachforschungen über die Gründe angestellt, warum wir Get und Set für unsere Immobilien verwenden sollten.
Ich habe 3 Hauptgründe dafür bemerkt
Der folgende Code ist ein Beispiel dafür, wie Sie die Eigenschaften "Abrufen" und "Festlegen" für Eigenschaften in Swift implementieren würden, indem Sie die drei genannten Punkte nutzen:
%Vor%Aber dieses andere Beispiel unten nutzt auch die genannten Punkte aus, aber anstatt eine andere berechnete Eigenschaft zu verwenden, um den Wert der privaten Eigenschaft zurückzugeben, benutze ich nur die Beobachter von WilleSet und DidSet
%Vor%Ich bin also neugierig zu wissen, was die VORTEILE und Nachteile jeder Implementierung sind.
Vielen Dank im Voraus
Ihre Frage läuft auf Kompilierungszeit vs. Laufzeitfehler ab. Um Ihre 3 Fragen zu beantworten:
willCheck
ist Ihre einzige Option hier fatalError
in didSet
ausgeben, erhalten Sie einen Laufzeitfehler und Ihre Anwendung stürzt ab. Ihr erstes Codebeispiel war zu ausführlich bei der Definition der Hintergrundvariablen - Sie müssen das nicht tun. Um diese Punkte zu veranschaulichen:
%Vor%Verwendung:
%Vor% Ein Hinweis zu private
in Swift 2 vs. Swift 3: Wenn Sie dies auf einem Swift 2-Spielplatz versuchen, finden Sie t.greeting = "Goodbye world"
funktioniert ganz gut. Dies liegt daran, dass Swift 2 einen seltsamen Zugriffsebenen-Spezifizierer hat: private
bedeutet "nur zugänglich innerhalb der aktuellen Datei". Trennen Sie die Klassendefinition und den Beispielcode in verschiedene Dateien und Xcode wird sich beschweren. In Swift 3 wurde das in fileprivate
geändert, was sowohl klarer ist als auch das Schlüsselwort private
für etwas ähnliches wie Java und .NET speichert.
Tags und Links oop swift set get computed-properties