Poiché le proprietà statiche memorizzate non sono (ancora) supportate per i tipi generici in swift, mi chiedo quale sia una buona alternativa.Qual è una buona alternativa per le proprietà statiche memorizzate di tipi generici in swift?
Il mio caso specifico è che voglio creare un ORM in rapido. Ho un protocollo Entity
che ha un tipo associato per la chiave primaria, dal momento che alcune entità avranno un numero intero come loro id
e alcune avranno una stringa ecc. In questo modo il protocollo Entity
è generico.
Ora ho anche un tipo EntityCollection<T: Entity>
, che gestisce le raccolte di entità e come puoi vedere è anche generico. L'obiettivo di EntityCollection
è che consente di utilizzare raccolte di entità come se fossero normali array senza dover essere consapevoli del fatto che dietro di essi c'è un database. EntityCollection
si occuperà di query e memorizzazione nella cache e di essere il più ottimizzato possibile.
Desidero utilizzare le proprietà statiche su EntityCollection
per archiviare tutte le entità che sono già state recuperate dal database. In questo modo se due istanze separate di EntityCollection
vogliono recuperare la stessa entità dal database, il database verrà interrogato solo una volta.
Ragazzi, avete idea di come potrei ottenerlo?
che non funziona per me da quando sto lavorando con i tipi generici e quei tipi non permettere proprietà statiche memorizzate. Questo è esattamente il motivo per cui sto postando questa domanda ... – Evert
Forse puoi cambiare cache essere una variabile globale di tipo [AnyObject] e all'interno dei metodi EntityCollection trasmessi a [T]? – mikem