Usi KVC per generare SQL?
-
06-07-2019 - |
Domanda
Mi chiedo se è possibile usare KVC per generare SQL. Sto facendo un ORM leggero; Voglio fare qualcosa del genere (pseudocodice):
for key in object.getKeys
sql = sql + formatField(key,objet.value[key]);
e ottieni:
INSERT INTO Table (Field1) VALUES (1);
È possibile in Objective-C?
Soluzione 3
Ho trovato class_copyPropertyList
in modo da riempire il conto.
Lo ottengo da SQLite Persistent Objects. Ho solo bisogno di sapere come attuare le relazioni;)
Altri suggerimenti
La codifica del valore chiave non può davvero farlo, ma è possibile utilizzare un NSDictionary per questa attività se non si desidera creare un livello di accesso ai dati specifico per i propri oggetti. Ecco un breve esempio per i campi numerici:
for ( NSString *key in [dictionary allKeys] )
{
fields = [fields stringByAppendingFormat:@", %@", key];
values = [values stringByAppendingFormat:@", %ld", (long)[[dictionary objectForKey:key] integerValue]];
}
NSString *sql = [NSString stringWithFormat:@"INSERT INTO Table (%@) VALUES (%@);", fields, values];
Quello che vuoi sembra molto simile agli oggetti persistenti di SQLite. È un insieme di classi obiettivo-c che sostanzialmente fanno ciò di cui stai parlando. I dettagli sulle classi e sulla fonte (che potrebbero essere particolarmente interessanti per te se vuoi scrivere la tua versione) sono disponibili qui: http://iphonedevelopment.blogspot.com/2008/08/sqlite-persistent-objects.html