问题描述
|
在sqlite3数据库中,我有一个带有两个字段的表“数据”:类型和路径。字段类型定义为INTEGER。在此字段中,插入NSUInteger值(例如0或1)。问题是,当我检索它时,会获得一个“奇怪的”值。我不知道我在哪里冤wrong。
if (init_statement == nil) {
const char *sql = \"SELECT type,path FROM data WHERE id=?\";
if (sqlite3_prepare_v2(database,sql,-1,&init_statement,NULL) != sqlITE_OK) {
NSAssert1(0,@\"Error: Failed to prepare statement with message \'%s\'.\",sqlite3_errmsg(database));
}
}
sqlite3_bind_int(init_statement,1,primaryKey);
if (sqlite3_step(init_statement) == sqlITE_ROW) {
int type = (int)sqlite3_column_text(init_statement,0);
char *relPath = (char *)sqlite3_column_text(init_statement,1);
// other stuff
}
// Reset the statement for future reuse.
sqlite3_reset(init_statement);
解决方法
SQLite仅允许使用64位带符号整数。您正在为其分配一个无符号整数。改为将其更改为NSInteger。