Я понимаю разницу между типами unsigned char *
и char *
. Я также понимаю, как использовать reinterpret_cast для преобразования unsigned char *
в char *
в C ++.
Я использую sqlite3 в Objective-C и пытаюсь получить NSString
от звонка на
sqlite3_column_text(...);
Для этого я в основном делаю:
char *cParam = (char *)sqlite3_column_text(compiledStatementPtr, 0);
NSString *aParam = nil;
if (cParam) {
aParam = [NSString stringWithUTF8String:cParam];
}
sqlite3_column_text()
, однако, возвращает unsigned char *
, и меня беспокоит поведение приведения к char *
. Я читал, что приведение зависит от реализации, и мне было интересно, это безопасное приведение в Objective-C или я полностью лаю не на том дереве?