Ich rufe eine Liste von Ergebnissen aus einer SQLite3-Datenbank in eine UITableView
ab. Der Code, mit dem ich Text aus der Datenbank abrufe, sieht folgendermaßen aus:
char *menuNameChars = (char *) sqlite3_column_text(statement, 1);
NSString *menuName = [[NSString alloc] initWithUTF8String:menuNameChars];
NSLog(@"Abgerufen %s,%@ von DB.", menuNameChars, menuName);
Wenn ich initWithUTF8String
verwende, wird manchmal die Information ordnungsgemäß aus der Datenbank kopiert. Manchmal wird die Information jedoch ordnungsgemäß aus dem char*
, aber nicht aus dem NSString
angezeigt:
2011-10-24 22:26:54.325 [23974:207] Abgerufen Cravin Chicken Sandwich – Crispy, (null) von DB.
2011-10-24 22:26:54.327 [23974:207] Abgerufen Cravin Chicken Sandwich – Roast, (null) von DB.
2011-10-24 22:26:54.331 [23974:207] Abgerufen Jr Chicken Sandwich, Jr Chicken Sandwich von DB.
2011-10-24 22:26:54.337 [23974:207] Abgerufen Prime-Cut Chicken Tenders - 3 Piece, Prime-Cut Chicken Tenders - 3 Piece von DB.
Wenn ich initWithUTF8String
durch initWithCString
ersetze, funktioniert der Code einwandfrei. Allerdings sagt mir XCode 4.2, dass initWithCString
veraltet ist. Ich weiß genug, um zu verstehen, dass ich keinen veralteten Code verwenden möchte, aber wenn initWithUTF8String
nicht funktioniert, was sollte ich dann verwenden?