FMDatabase和NSOperation

时间:2011-12-28 17:33:25

标签: iphone fmdb

我将FMDatabase用于基于sqlite的iphone应用程序。问题是应用程序从Web服务获取批量数据并插入到阻止UI [主线程]的本地sqlite数据库中。另外,我们无法在后台线程中运行与sqlite相关的命令。我们可以在这里使用NSOperation吗?任何一个例子??

1 个答案:

答案 0 :(得分:1)

您应该能够在后台运行SQLite操作,只要您只在该线程内运行它们,而不是从主线程或其他任何线程运行它们。

您可以使用NSOperationQueue来处理此问题,将最大并发操作数设置为1,以确保一次只写入一个SQLite,然后调用NSInvocationOperations来保存数据。

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

[operationQueue addOperation:invocation];