模拟器/设备上sqlite的差异

时间:2011-03-04 00:37:55

标签: iphone objective-c database sqlite ios-simulator

我有一个应用程序从SQLite数据库中提取信息。它在iPhone模拟器上运行得很好,但是当我在设备上测试时,我什么也得不到。在两者之间使用数据库是否存在差异?我试过看了一遍,找不到任何有帮助的东西。我看到这个问题在谷歌上很常见,我只是没有找到适合我的解决方案。

我已经设置了断点并尝试对其进行调试,在实际设备上它永远不会通过while (sqlite3_step(statement) == SQLITE_ROW),它总是返回SQLITE_DONE。我无法弄清楚为什么这会在设备上发生变化。任何帮助将不胜感激,有关SQLite的建议,或者代码是否可以改进等等。谢谢。

NSString *qsql = @"SELECT Distinct State FROM School";
    sqlite3_stmt *statement;

    if (sqlite3_prepare_v2(db, [qsql UTF8String], -1, &statement, nil) == SQLITE_OK) 
    {
        while (sqlite3_step(statement) == SQLITE_ROW) 
        {
            char *colState = (char *) sqlite3_column_text(statement, 0);
        NSString *state = [[NSString alloc] initWithUTF8String:colState];

        [states addObject:state];
        [state release];
    }
    sqlite3_reset(statement);
}
return states;

}

1 个答案:

答案 0 :(得分:1)

首先想到的是数据库在模拟器上正确安装但不在手机上。

查看this answer,了解它是否对您有所帮助。