我从网上下载数据并将下载的数据插入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];
提前致谢
答案 0 :(得分:0)
您可以在后台线程中插入数据。但是,如果您同时(或多或少)尝试从两个不同的线程访问数据库,您将收到“数据库锁定”错误,这很难从中恢复。
因此,您需要提供一些外部互锁,以防止从两个不同的线程同时访问。在某些情况下,程序逻辑本身会阻止这种情况,在其他情况下,您需要实现显式锁机制。