Không có API Objective-C do Apple cung cấp cho MySQL. Tuy nhiên, có một số trình bao bọc bên thứ ba của API C. Hãy xem MySQL-Cocoa Framework , chẳng hạn.
Với sự quen thuộc của bạn với API PHP và C, bạn có thể đơn giản hơn khi sử dụng API C. Bạn sẽ cần xử lý chuyển đổi giữa các đối tượng và kiểu dữ liệu C, nhưng điều này không có nhiều tác dụng.
Chỉnh sửa
Bạn gặp sự cố vì giá trị hàng được trả về bởi API mysql không phải là một đối tượng và chuỗi định dạng của bạn đang nói với NSLog
để coi nó như một. %@
là trình giữ chỗ chuỗi định dạng cho một đối tượng, không phải kiểu dữ liệu C.
Không rõ giá trị trong trường hợp này là bao nhiêu. Bối cảnh dường như ngụ ý rằng đó là dữ liệu hình ảnh. Nếu đúng như vậy, bạn có thể sẽ muốn tạo một NSData
đối tượng từ blob được trả về bởi truy vấn, ví dụ:
NSData *imageData;
imageData = [[ NSData alloc ] initWithBytes: row[ i ] length: lengths[ i ]];
NSLog( @"imageData: %@", imageData );
/* ...create NSImage, CGImage, etc... */
[ imageData release ];
Nếu trường kết quả của bạn chỉ là chuỗi, hãy sử dụng NSString
của -initWithBytes:length:encoding:
phương pháp:
NSString *s;
s = [[ NSString alloc ] initWithBytes: row[ i ] length: lengths[ i ]
encoding: NSUTF8StringEncoding ];
NSLog( @"result column %d: %@", i, s );
[ s release ];