Question

Je me demande s’il est possible d’utiliser KVC pour générer du SQL. Je fais un ORM léger; Je veux faire quelque chose comme ça (pseudocode):

for key in object.getKeys
    sql = sql + formatField(key,objet.value[key]);

et obtenez:

INSERT INTO Table (Field1) VALUES (1);

Est-ce possible en Objective-C?

Était-ce utile?

La solution 3

J'ai trouvé class_copyPropertyList afin de remplir la facture.

Je l’obtiens à partir d’objets persistants SQLite. J'ai seulement besoin de savoir comment mettre en œuvre les relations;)

Autres conseils

Le codage par valeur de clé ne peut pas vraiment le faire, mais vous pouvez utiliser un NSDictionary pour cette tâche si vous ne souhaitez pas créer de couche d'accès aux données spécifique à vos objets. Voici un exemple rapide pour les champs numériques:

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];

Ce que vous voulez est très similaire à SQLite Persistent Objects. C'est un ensemble de classes d'objectifs-c qui font essentiellement ce dont vous parlez. Vous trouverez des détails sur les classes et le source (qui peuvent vous intéresser particulièrement si vous voulez écrire votre propre version) ici: http://iphonedevelopment.blogspot.com/2008/08/sqlite-persistent-objects.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top