Der er ikke noget Apple-leveret Objective-C API til MySQL. Der er dog et par tredjepartsindpakninger af C API. Tag et kig på MySQL-Cocoa Framework , for eksempel.
I betragtning af dit kendskab til PHP og C API, kan det være mere ligetil for dig blot at bruge C API. Du bliver nødt til at håndtere konvertering mellem objekter og C-datatyper, men det er ikke meget arbejde.
Rediger
Du går ned, fordi rækkeværdien returneret af mysql API ikke er et objekt, og din formatstreng fortæller NSLog
at behandle det som én. %@
er en format-streng pladsholder for et objekt, ikke en C-datatype.
Det er ikke klart, hvad værdien er i dette tilfælde. Konteksten synes at antyde, at det er billeddata. Hvis det er tilfældet, vil du sandsynligvis gerne oprette en NSData
objekt fra den klat, der returneres af forespørgslen, f.eks.:
NSData *imageData;
imageData = [[ NSData alloc ] initWithBytes: row[ i ] length: lengths[ i ]];
NSLog( @"imageData: %@", imageData );
/* ...create NSImage, CGImage, etc... */
[ imageData release ];
Hvis dine resultatfelter kun er strenge, skal du bruge NSString
's -initWithBytes:length:encoding:
metode:
NSString *s;
s = [[ NSString alloc ] initWithBytes: row[ i ] length: lengths[ i ]
encoding: NSUTF8StringEncoding ];
NSLog( @"result column %d: %@", i, s );
[ s release ];