Я перетаскиваю список результатов из базы данных SQLite3 в UITableView
. Код, где я извлекаю текст из базы данных, выглядит так:
char *menuNameChars = (char *) sqlite3_column_text(statement, 1);
NSString *menuName = [[NSString alloc] initWithUTF8String:menuNameChars];
NSLog(@"Retrieved %s,%@ from DB.", menuNameChars, menuName);
Когда я использую initWithUTF8String
, иногда информация правильно копируется из базы данных. Однако иногда информация отображается правильно с char*
, но не с NSString
:
2011-10-24 22:26:54.325 [23974:207] Retrieved Cravin Chicken Sandwich – Crispy, (null) from DB.
2011-10-24 22:26:54.327 [23974:207] Retrieved Cravin Chicken Sandwich – Roast, (null) from DB.
2011-10-24 22:26:54.331 [23974:207] Retrieved Jr Chicken Sandwich, Jr Chicken Sandwich from DB.
2011-10-24 22:26:54.337 [23974:207] Retrieved Prime-Cut Chicken Tenders - 3 Piece, Prime-Cut Chicken Tenders - 3 Piece from DB.
Теперь, если я заменю initWithUTF8String
на initWithCString
, код работает отлично. Тем не менее, XCode 4.2 говорит мне, что initWithCString
устарела. Я знаю достаточно, чтобы понять, что не хочу использовать устаревший код, но если initWithUTF8String
не работает, что мне следует использовать?