2011-12-28 45 views
0

我正在使用FMDatabase for基於sqlite的iphone應用程序。問題在於應用程序正在從Web服務中獲取批量數據,並將其插入到阻止UI [主線程]的本地sqlite數據庫中。我們也不能在後臺線程中運行sqlite相關的命令。我們可以在這裏使用NSOperation嗎?任何例子?FMDatabase和NSOperation

回答

1

你應該可以在後臺運行你的SQLite操作,只要你只在該線程內運行它們而不是從主或其他任何運行。

您可以使用NSOperationQueue來處理這個問題,併發操作的最大數目設置爲1,以確保一次只寫入您的SQLite,然後調用NSInvocationOperations來保存您的數據。

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

[operationQueue addOperation:invocation];