Da statische gespeicherte Eigenschaften (noch) nicht für generische Typen in swift unterstützt werden, frage ich mich, was eine gute Alternative ist.Was ist eine gute Alternative für statische gespeicherte Eigenschaften von generischen Typen in swift?
Mein spezifischer Anwendungsfall ist, dass ich ein ORM in schnellen aufbauen will. Ich habe ein Entity
Protokoll, das einen verbundenen Typ für den Primärschlüssel hat, da einige Entitäten eine Ganzzahl als id
haben und einige eine Zeichenkette etc. haben. So macht das Entity
Protokoll generisch.
Jetzt habe ich auch eine EntityCollection<T: Entity>
Art, die Sammlungen von Unternehmen verwaltet und wie Sie es auch generic sehen können. Das Ziel von EntityCollection
ist, dass Sie Auflistungen von Entitäten so verwenden können, als wären sie normale Arrays, ohne dass Sie wissen müssen, dass dahinter eine Datenbank liegt. EntityCollection
kümmert sich um Abfragen und Caching und wird so optimiert wie möglich.
Ich wollte statische Eigenschaften auf dem EntityCollection
verwenden, um alle Entitäten zu speichern, die bereits aus der Datenbank abgerufen wurden. Wenn also zwei separate Instanzen von EntityCollection
dieselbe Entität aus der Datenbank abrufen möchten, wird die Datenbank nur einmal abgefragt.
Haben Sie Jungs eine Ahnung, wie ich sonst das erreichen könnte?
Das ist nicht für mich arbeiten, da ich mit generischem Typ arbeiten bin und diese Typen nicht zulassen statisch gespeicherten Eigenschaften. Das ist genau, warum ich diese Frage poste ... – Evert
Vielleicht können Sie Cache ändern, eine globale Variable vom Typ [AnyObject] und innerhalb der EntityCollection-Methoden, die zu [T] gegossen werden? – mikem