1

此代码在 iPhone 和 iPhone 模拟器上运行良好,但在 iPad 上运行时会使模拟器崩溃:

const char *createsql = [MYClass GetDBCreationString];
sqlite3_stmt *crts;
if (sqlite3_prepare_v2(database, createsql, -1, &crts, NULL) == SQLITE_OK) {
    int success = sqlite3_step(crts);
    if (success != SQLITE_DONE) {
        ///problem
    }
    sqlite3_finalize(crts);
    sqlite3_reset(crts);
}

它是创建将包含该特定类的 SQLLite 表的代码。它每次都在重置线上崩溃,但它确实成功地创建了表。

在 iPhone 和 iPhone 模拟器上它工作正常。finalize 和 reset 是多余的吗?如果是这样,为什么它在 iPad 上崩溃但在 iPhone 上却可以正常工作?

4

2 回答 2

4

iPad SDK 受保密协议约束。你应该在唯一可以问的地方问这个问题:http: //devforums.apple.com

于 2010-01-30T17:58:43.607 回答
1

我认为不需要 sqlite3_reset();sqlite3_finalize() 应该做你想做的。两个模拟器上的 SQLite 版本是否相同?

于 2010-01-30T18:00:52.603 回答