0

我从网上下载数据并将下载的数据插入到 sqlite 数据库中。现在我想要的是插入数据库的数据,这些数据应该在后台发生,同时下载用户也可以在视图上做其他事情。那么在后台进程中是否有可能将数据插入到 sqlite 中。

我正在使用它,但应用程序在使用它时崩溃。

NSNumber *number = [NSNumber numberWithInteger:1];
NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self
                                                                        selector:@selector(InsertIntodatabase)
                                                                          object:number];

[queue addOperation:operation];
[operation release];

提前致谢

4

1 回答 1

0

您可以在后台线程中插入数据。但是,如果您同时(或多或少)尝试从两个不同的线程访问数据库,您将收到难以恢复的“数据库锁定”错误。

所以你需要提供一些外部联锁来防止来自两个不同线程的同时访问。在某些情况下,程序逻辑本身会阻止这种情况,而在其他情况下,您需要实现显式锁定机制。

于 2012-08-08T19:22:47.480 回答