Правильный способ конвертировать char * в NSString без initWithCString?
Я вытащил список результатов из базы данных 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
не работает, что я должен использовать?