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 に答える