0

我想在后台执行一些与数据库相关的任务,因为我添加了代码

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
                                             0), ^(void) {
        [lclDB  deleteRecoredwithBlock:^(BOOL success) {
            if (success) {
                NSLog(@"Deletion Succesful...");
            }
        }];
    });

deleteRecord 函数在内部按顺序调用多个方法以在本地数据库中执行删除操作。现在我已经等到所有删除操作都执行完毕。但我想在后台执行整个删除操作。如果有人知道请帮我弄清楚这些问题。

4

3 回答 3

1

任何 NSObject 都可以使用以下命令在后台执行操作:

[myObject performSelectorInBackground:@selector(anAction) withObject:nil];

有关苹果文档的更多信息。

于 2012-10-23T09:19:40.353 回答
0

试试performSelectorInBackground:withObject:方法。

于 2012-10-23T09:22:20.393 回答
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
}
于 2012-10-23T09:43:17.913 回答