Ich sah ein Tutorial zu schnellen Basics und ein vorübergehender Kommentar wurde gemacht, dass Property-Beobachter nicht zu faulen Eigenschaften hinzugefügt werden können, aber kein Grund gegeben wurde. Warum ist das der Fall?Warum können keine Eigenschaftenbeobachter zu faulen Eigenschaften hinzugefügt werden?
Antwort
Die Dokumente bestätigen dies ("Sie können Eigenschaftsbeobachter zu allen gespeicherten Eigenschaften hinzufügen, die Sie definieren, abgesehen von Lazy gespeicherten Eigenschaften") (source)), aber sie bieten keine Begründung.
Ich würde vermuten, dass Immobilienbeobachter auf die Eigenschaft zugreifen müssen, die sie beobachten, um sich selbst als Beobachter zu befestigen, obwohl es sich nicht so anfühlt wie Sie. Auch dies ist nur eine Vermutung, aber wenn ich richtig liege, dann ist es offensichtlich irrelevant, eine faule Eigenschaft zu haben. Lazy-Eigenschaften werden berechnet, wenn zum ersten Mal zugegriffen wird, und wenn ein Beobachter auf diese Eigenschaft zugreift, dann würde er sofort berechnet werden, was den Zweck von ihm überhaupt zunichte macht.
- 1. Es können keine Anzeigen zu meiner App hinzugefügt werden.
- 2. Können Fußzeilen zu MVCContrib-Grids hinzugefügt werden?
- 3. Können Abhängigkeiten zu scalafiddle hinzugefügt werden?
- 4. Swift 2.2: Failable Initialisierer in faulen Eigenschaften
- 5. Verhindern, dass Eigenschaften zu einem JavaScript-Objekt hinzugefügt werden
- 6. Ember - Object Eigenschaftenbeobachter
- 7. Dateien können nicht manuell zu TFS hinzugefügt werden
- 8. Wie können Angular-aktivierte Elemente zu DOM hinzugefügt werden?
- 9. Können Attribute dynamisch in C# hinzugefügt werden?
- 10. Können HTML-Style Links zu SWT StyledText hinzugefügt werden?
- 11. können Optionen zu npm package.json Abhängigkeiten hinzugefügt werden?
- 12. Msg-Fehler "Zu einem DataGridView-Steuerelement, das keine Spalten enthält, kann keine Zeile hinzugefügt werden. Spalten müssen zuerst hinzugefügt werden."
- 13. Android - Daten werden nicht zu MySQL Datenbank hinzugefügt - keine Fehler
- 14. Es kann keine Evolutionsabhängigkeit zu Play hinzugefügt werden! Projekt
- 15. Warum enthält eine Schnittstelle keine Eigenschaften
- 16. Warum werden keine Breakpoints getroffen?
- 17. Sollten Erweiterungseigenschaften zu C# 4.0 hinzugefügt werden?
- 18. Warum können Funktionen gebeizt werden, aber keine Module?
- 19. SDL Tridion 2011 - Elternpublikationen können nicht hinzugefügt werden
- 20. IOS - in drawRect Func Layer-Eigenschaften können nicht geändert werden?
- 21. Axis2-Fehler: Folgende Facetten können nicht hinzugefügt werden
- 22. Warum können Cookies deaktiviert werden?
- 23. Schaltflächen können nicht zur Tabellenansichts-Symbolleiste hinzugefügt werden
- 24. Wie können Literalzeichenfolgen im DateTime-Format hinzugefügt werden?
- 25. Warum können wir keine Objektliste bekommen?
- 26. Können Module Eigenschaften haben?
- 27. Warum Objekte initialisieren, die auf Umwegen zu Eigenschaften werden?
- 28. Wie können Menüpunkte für Flavor versteckt oder hinzugefügt werden?
- 29. Warum können statische Klassen keine Destruktoren haben?
- 30. Können Eigenschaften als "out" - oder "ref" -Parameter übergeben werden?
Der Objektbeobachtungsmechanismus in Swift ist völlig unabhängig von der KVO-Beobachtung. – zneak
@zneak, ja, ich dachte, ich habe das klar gemacht, ich werde dieses Beispiel entfernen, um jegliche Verwirrung zu beseitigen. – Firo