Няма предоставен от Apple Objective-C API за MySQL. Има обаче няколко обвивки на трети страни на C API. Разгледайте MySQL-Cocoa Framework , например.
Като се има предвид, че сте запознати с PHP и C API, може да е по-лесно за вас просто да използвате C API. Ще трябва да се справите с преобразуването между обекти и типове данни в C, но това не е много работа.
Редактиране
Сривате, защото стойността на реда, върната от mysql API, не е обект и вашият форматен низ казва NSLog
да го третирам като едно. %@
е заместител на форматен низ за обект, а не тип данни в C.
Не е ясно каква е стойността в този случай. Изглежда, че контекстът предполага, че това са данни за изображения. Ако случаят е такъв, вероятно ще искате да създадете NSData
обект от блоб, върнат от заявката, напр.:
NSData *imageData;
imageData = [[ NSData alloc ] initWithBytes: row[ i ] length: lengths[ i ]];
NSLog( @"imageData: %@", imageData );
/* ...create NSImage, CGImage, etc... */
[ imageData release ];
Ако вашите резултати са само низове, използвайте NSString
's -initWithBytes:length:encoding:
метод:
NSString *s;
s = [[ NSString alloc ] initWithBytes: row[ i ] length: lengths[ i ]
encoding: NSUTF8StringEncoding ];
NSLog( @"result column %d: %@", i, s );
[ s release ];