0

sqlite ベースの iphone アプリケーションに FMDatabase を使用しています。問題は、アプリケーションが Web サービスからバルク データをフェッチし、UI [メイン スレッド] をブロックしているローカルの sqlite データベースに挿入していることです。また、バックグラウンド スレッドで sqlite 関連のコマンドを実行することもできません。ここで NSOperation を使用できますか? 例はありますか??

4

1 に答える 1

1

メインやその他のスレッドではなく、そのスレッド内でのみ SQLite 操作を実行する限り、バックグラウンドで SQLite 操作を実行できるはずです。

NSOperationQueue を使用してこれを処理し、同時操作の最大数を 1 に設定して、SQLite への書き込みが一度に 1 つだけであることを確認してから、NSInvocationOperations を呼び出してデータを保存できます。

NSInvocationOperation * invocation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(writeThisToDB) object:thisObject];

[operationQueue addOperation:invocation];
于 2012-01-03T04:29:26.437 に答える