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);
}
语义问题,本着“初始化字符*与类型为const char丢弃预选赛的表现” char *nameChar = sqlite3_column_text(statement, 1)
初始化字符*类型为const char的表达
如果改变char *nameChar
到char *nameChar
语义问题“发送签名字符*到类型为const char *的参数”指针之间转换不同的符号为整数类型
由于不允许更改'sqlite3_column_text'返回的指针的内容,所以他应该使用第二个选项。他可能需要在'initWithUTF8String:'中进行强制转换以应对签名的差异,但如果文本实际上是UTF-8,它应该是安全的。 – JeremyP 2012-04-02 15:37:26
@JeremyP。你所说的绝对正确的是一个良好的做法。但是即使它被铸造或者做了,也不抱怨或者做任何错误? – Vignesh 2012-04-02 15:42:46
如果你使用前者,它仍然可以工作。删除'const'限定符似乎是错误的。 – JeremyP 2012-04-02 15:50:31