2

以下の選択クエリを実行していますが、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];
            }
        }
4

1 に答える 1

1

この問題は、iOS 8.1 と iOS 8.2 の間の SQLite の変更に起因しています。iOS 8.2 で Sqlite3 クエリが非常に遅くなるを参照してください。

于 2015-04-10T22:36:20.407 に答える