инициализация char * выражением типа const char - PullRequest
0 голосов
/ 02 апреля 2012
NSString *query =  [[NSString alloc] initWithFormat:@"SELECT * FROM objects ", catIdS];
sqlite3_stmt *statement;
    if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) == SQLITE_OK) {
        while (sqlite3_step(statement) == SQLITE_ROW) {
            char *nameChar = sqlite3_column_text(statement, 1);

            NSString *title = [[NSString alloc] initWithUTF8String:nameChar];
       }

       sqlite3_finalize(statement);
    }

Семантическая проблема "инициализация char * с помощью выражения типа const char отбрасывает квалификаторы" в строке char *nameChar = sqlite3_column_text(statement, 1)

если изменить char *nameChar на char *nameChar Семантическая проблема «Отправка unsigned char * в параметр типа const char *» преобразует указатели в целочисленные типы с различным знаком

Ответы [ 2 ]

8 голосов
/ 02 апреля 2012

Кастинг должен решить вашу проблему.

char *nameChar = (char *)sqlite3_column_text(statement, 1);

или

const unsigned char *nameChar = sqlite3_column_text(statement, 1);

Пожалуйста, посмотрите на подпись метода,

SQLITE_API const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
1 голос
/ 02 апреля 2012

Используйте это Вот так, это может помочь

    NSString *title = [[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...