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

Ответы на вопрос(3)

Ваш ответ на вопрос