Er is geen door Apple geleverde Objective-C API voor MySQL. Er zijn echter een paar wrappers van derden van de C API. Bekijk het MySQL-Cocoa Framework , bijvoorbeeld.
Gezien uw bekendheid met de PHP- en C-API, kan het voor u eenvoudiger zijn om gewoon de C-API te gebruiken. U moet de conversie tussen objecten en C-gegevenstypen afhandelen, maar dit is niet veel werk.
Bewerken
Je crasht omdat de rijwaarde die wordt geretourneerd door de mysql-API geen object is, en je opmaakreeks vertelt NSLog
om het als één te behandelen. De %@
is een tijdelijke aanduiding voor een tekenreeks voor een object, geen C-gegevenstype.
Het is niet duidelijk wat de waarde in dit geval is. De context lijkt te impliceren dat het beeldgegevens zijn. Als dat het geval is, wilt u waarschijnlijk een NSData
. maken object uit de blob die door de query is geretourneerd, bijvoorbeeld:
NSData *imageData;
imageData = [[ NSData alloc ] initWithBytes: row[ i ] length: lengths[ i ]];
NSLog( @"imageData: %@", imageData );
/* ...create NSImage, CGImage, etc... */
[ imageData release ];
Als uw resultaatvelden alleen tekenreeksen zijn, gebruikt u NSString
's -initWithBytes:length:encoding:
methode:
NSString *s;
s = [[ NSString alloc ] initWithBytes: row[ i ] length: lengths[ i ]
encoding: NSUTF8StringEncoding ];
NSLog( @"result column %d: %@", i, s );
[ s release ];