【问题标题】:sqlite3_step taking forever on IOS 8.2sqlite3_step 在 IOS 8.2 上永远存在
【发布时间】:2015-06-10 12:53:09
【问题描述】:

我正在运行以下选择查询,它在 iOS 8.2 之前可以 100% 运行。此查询在 iOS 8.1 及更早版本中返回了完美的结果集。该应用程序卡在 sqlite3_step 上,需要永远完成。有人知道为什么吗?我的应用程序卡在用户设备上。下面是查询和代码。

NSString *sqlStatement = @"Select W.woorde, R.woorde, W.woordIDs, R.woordIDs from masterWoorde W, masterWoorde R, masterWaardes WD, masterWoorde Rr where Rr.woorde LIKE ? And Rr.woordIDs=WD.skoonLeidraadID and WD.leidraadID=W.woordIDs and WD.resultaatID=R.woordIDs ORDER BY W.woorde COLLATE NOCASE, R.woorde COLLATE NOCASE";

if (prepareStatus == SQLITE_OK) {
            sqlite3_bind_text(select_statement, 1, [dboObject.frases UTF8String], -1, SQLITE_STATIC);

            while (sqlite3_step(select_statement) == SQLITE_ROW) {

                productSModel * aProduct = [[productSModel alloc] init];
                aProduct.frases = [NSString stringWithUTF8String:(char *)sqlite3_column_text(select_statement, 0)];
                aProduct.ABC = [NSString stringWithUTF8String:(char *)sqlite3_column_text(select_statement, 1)];
                aProduct.CDE = sqlite3_column_int(select_statement, 2);
                aProduct.FGH = sqlite3_column_int(select_statement, 3);

                [arrResult addObject:aProduct];
            }
        }

【问题讨论】:

  • sqlite3_step() 是实际执行查询的内容。使用 iOS 8.1 和 8.2 的 SQLite 版本显示此查询的 EXPLAIN QUERY PLAN 的输出。

标签: sqlite ios8.2


【解决方案1】:

此问题已追溯到 iOS 8.1 和 iOS 8.2 之间的 SQLite 更改。见Sqlite3 query gets really slow under iOS 8.2

【讨论】:

    猜你喜欢
    • 2015-05-18
    • 2022-10-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    相关资源
    最近更新 更多