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