Ich verstehe den Unterschied zwischen unsigned char *
und char *
Arten. Ich verstehe auch, wie man reinterpret_cast benutzt, um eine unsigned char *
zu einer char *
in C++ zu werfen.Definiertes Verhalten von Cast von unsigned char * zu char * in Objective-C
Ich benutze sqlite3 in Objective-C und ich versuche, eine NSString
von einem Aufruf
sqlite3_column_text(...);
zu bekommen dies zu tun, ich bin im Grunde tun:
char *cParam = (char *)sqlite3_column_text(compiledStatementPtr, 0);
NSString *aParam = nil;
if (cParam) {
aParam = [NSString stringWithUTF8String:cParam];
}
sqlite3_column_text()
, gibt jedoch eine unsigned char *
zurück und ich bin besorgt über das Verhalten der Besetzung zu char *
. Ich habe gelesen, dass die Besetzung umsetzungsspezifisch ist und ich mich gefragt habe, ob dies eine sichere Besetzung in Objective-C ist oder ob ich den falschen Baum belle.
BTW reinterpret_cast scheint nicht zu ObjC verfügbar, es sei denn, es ist in einer Header-Datei ich nicht bewusst - was möglich ist. – jcb
'reininterpret_cast' ist ein C++ - Operator, der in Objective-C nicht verfügbar ist. – notnoop