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?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top