使用const char类型的表达式初始化char*

les*_*syk 0 sqlite objective-c

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);
    }
Run Code Online (Sandbox Code Playgroud)

语义问题"使用类型为const的表达式初始化char*丢弃限定符"在行中 char *nameChar = sqlite3_column_text(statement, 1)

如果更改char *nameCharchar *nameChar 语义问题"将unsigned char*发送到const char*类型的参数"将指针转换为具有不同符号的整数类型

Vig*_*esh 8

施放它应该可以解决你的问题.

char *nameChar = (char *)sqlite3_column_text(statement, 1);
Run Code Online (Sandbox Code Playgroud)

要么

const unsigned char *nameChar = sqlite3_column_text(statement, 1);
Run Code Online (Sandbox Code Playgroud)

请看方法的签名,

SQLITE_API const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
Run Code Online (Sandbox Code Playgroud)