我正在将 FMDatabase 用于基于 sqlite 的 iphone 应用程序。问题是应用程序正在从 Web 服务获取批量数据并插入到阻塞 UI [主线程] 的本地 sqlite 数据库中。我们也不能在后台线程中运行与 sqlite 相关的命令。我们可以在这里使用 NSOperation 吗?有什么例子吗??
问问题
563 次
1 回答
1
您应该能够在后台运行 SQLite 操作,只要您只在该线程内而不是从主线程或任何其他线程中运行它们。
您可以使用 NSOperationQueue 来处理此问题,将最大并发操作数设置为 1 以确保一次只有一个写入您的 SQLite,然后调用 NSInvocationOperations 来保存您的数据。
NSInvocationOperation * invocation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(writeThisToDB) object:thisObject];
[operationQueue addOperation:invocation];
于 2012-01-03T04:29:26.437 回答