从sqlite3 db中检索一个整数值obj-c中的问题

问题描述

| 在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。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...