我想在后台执行一些与数据库相关的任务,因为我添加了代码
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
0), ^(void) {
[lclDB deleteRecoredwithBlock:^(BOOL success) {
if (success) {
NSLog(@"Deletion Succesful...");
}
}];
});
deleteRecord函数在内部调用方法的数量顺序执行本地数据库中的删除操作。现在我等到所有执行删除操作。但是我想在后台执行这个完整的删除操作。如果任何一个已知的请帮帮我找出这些问题。
答案 0 :(得分:1)
任何NSObject都可以使用以下方法在后台执行操作:
[myObject performSelectorInBackground:@selector(anAction) withObject:nil];
答案 1 :(得分:0)
尝试performSelectorInBackground:withObject:
方法。
答案 2 :(得分:0)
[self performSelectorInBackground:@selector(backgroundMethod) withObject:nil];
您也可以使用NSInvocationOperation。
NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(deleteDataWithOperation) object:nil];
[queue addOperation:operation];
这是您的deleteDataWithOperation
方法 -
-(void)deleteDataWithOperation
{
//Do your work here
}