Что это значит? При инициализации отбрасываются квалификаторы из целевого типа указателя - PullRequest
1 голос
/ 07 апреля 2011

Я пытаюсь загрузить текст из базы данных sqlite в подробном представлении и получаю эту ошибку.

При инициализации отбрасываются квалификаторы из целевого типа указателя.

Что это значит?и как я могу это исправить.Помогите, пожалуйста.Вот мой код.

-(void) hydrateDetailViewData {
        if (isDetailViewHydrated) return; 

        if (detailStmt == nil) {
                const char *sql = "Select ClubAddress from clubNames Where clubID = ?";
                 if (sqlite3_prepare_v2(database, sql, -1, &detailStmt, NULL) !=SQLITE_OK)
                         NSAssert1(0, @"Error while creating detail view statment. '%s'", sqlite3_errmsg(database));
                 }
        sqlite3_bind_int(detailStmt, 1, clubID);

        if (SQLITE_DONE != sqlite3_step(detailStmt)) {
                char *db_text = sqlite3_column_text(detailStmt, 2); //error showing here
                NSString *address = [NSString stringWithUTF8String: db_text];
                self.ClubAddress = address;
        }
        else
                NSAssert1(0, @"Error while getting the address of club. '%s'", sqlite3_errmsg(database));
        sqlite3_reset(detailStmt);

        isDetailViewHydrated = YES;
}

Спасибо.

Ответы [ 2 ]

3 голосов
/ 07 апреля 2011

sqlite3_column_text объявлено как возвращающее const unsigned char *, и вы присваиваете его переменной типа char *. Это теряет квалификатор const, поэтому компилятор предупреждает вас об этом.

1 голос
/ 28 октября 2011

это также будет работать:

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