Mysql
 sql >> Base de données >  >> RDS >> Mysql

Objective-C et MySQL

Il n'y a pas d'API Objective-C fournie par Apple pour MySQL. Il existe cependant quelques wrappers tiers de l'API C. Jetez un œil au Framework MySQL-Cocoa , par exemple.

Étant donné votre familiarité avec PHP et l'API C, il peut être plus simple pour vous d'utiliser simplement l'API C. Vous devrez gérer la conversion entre les objets et les types de données C, mais ce n'est pas beaucoup de travail.

Modifier

Vous plantez parce que la valeur de ligne renvoyée par l'API mysql n'est pas un objet et votre chaîne de format indique NSLog pour le traiter comme un seul. Le %@ est un espace réservé de chaîne de format pour un objet, pas un type de données C.

On ne sait pas quelle est la valeur dans ce cas. Le contexte semble impliquer qu'il s'agit de données d'image. Si tel est le cas, vous voudrez probablement créer un NSData objet du blob renvoyé par la requête, par exemple :

NSData    *imageData;

imageData = [[ NSData alloc ] initWithBytes: row[ i ] length: lengths[ i ]];
NSLog( @"imageData: %@", imageData );
/* ...create NSImage, CGImage, etc... */
[ imageData release ];

Si vos champs de résultat ne sont que des chaînes, utilisez NSString -initWithBytes:length:encoding: méthode :

NSString    *s;

s = [[ NSString alloc ] initWithBytes: row[ i ] length: lengths[ i ]
                        encoding: NSUTF8StringEncoding ];
NSLog( @"result column %d: %@", i, s );
[ s release ];