Es gibt keine von Apple bereitgestellte Objective-C-API für MySQL. Es gibt jedoch einige Drittanbieter-Wrapper der C-API. Sehen Sie sich das MySQL-Cocoa Framework
Angesichts Ihrer Vertrautheit mit der PHP- und C-API ist es für Sie möglicherweise einfacher, einfach die C-API zu verwenden. Sie müssen sich um die Konvertierung zwischen Objekten und C-Datentypen kümmern, aber das ist nicht viel Arbeit.
Bearbeiten
Sie stürzen ab, weil der von der mysql-API zurückgegebene Zeilenwert kein Objekt ist und Ihre Formatzeichenfolge NSLog
mitteilt es als eins zu behandeln. Der %@
ist ein Format-String-Platzhalter für ein Objekt, kein C-Datentyp.
Es ist nicht klar, was der Wert in diesem Fall ist. Der Kontext scheint zu implizieren, dass es sich um Bilddaten handelt. In diesem Fall möchten Sie wahrscheinlich NSData
erstellen Objekt aus dem von der Abfrage zurückgegebenen Blob, z. B.:
NSData *imageData;
imageData = [[ NSData alloc ] initWithBytes: row[ i ] length: lengths[ i ]];
NSLog( @"imageData: %@", imageData );
/* ...create NSImage, CGImage, etc... */
[ imageData release ];
Wenn Ihre Ergebnisfelder nur Zeichenfolgen sind, verwenden Sie 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 ];