Je comprends la différence entre les types unsigned char *
et char *
. Je comprends également comment utiliser reinterpret_cast pour lancer un unsigned char *
en char *
en C++.Comportement défini de conversion de char * non signé en char * dans Objective-C
J'utilise sqlite3 en Objective-C et essaie d'obtenir un NSString
d'un appel à
sqlite3_column_text(...);
Pour ce faire, je fais essentiellement:
char *cParam = (char *)sqlite3_column_text(compiledStatementPtr, 0);
NSString *aParam = nil;
if (cParam) {
aParam = [NSString stringWithUTF8String:cParam];
}
sqlite3_column_text()
, Cependant, renvoie un unsigned char *
et je suis préoccupé par le comportement de la distribution à char *
. J'ai lu que le casting est spécifique à l'implémentation et je me demandais si c'était un casting sûr en Objective-C ou si je aboyais totalement le mauvais arbre?
BTW reinterpret_cast ne semble pas être disponible pour ObjC sauf si c'est dans un fichier d'en-tête que je ne connais pas - ce qui est possible. – jcb
'reinterpret_cast' est un opérateur C++ non disponible en Objective-C. – notnoop