2016-08-05 8 views
0

私は次のようなシナリオを持っています:バックグラウンドスレッドで何度もメソッドを呼びたいのですが、返される値はデリゲートメソッドから来ています。バックグラウンドスレッドでこれをどうやって処理できますか?メインスレッドのデリゲートメソッドから回答を受け取ります

NSOperationQueue *operationQueue = [NSOperationQueue new]; 
for (int i = 0 ; i < 100; i++) { 
    NSBlockOperation *blockOperation = [NSBlockOperation blockOperationWithBlock:^{ 
     [self.routingService calculateRoute:self.routeSettings]; 
    }]; 
    [self.operationQueue addOperation:blockOperation]; 
} 

//Delegate method 
- (void)routingService:(SKRoutingService *)routingService didFinishRouteCalculationWithInfo:(SKRouteInformation *)routeInformation { 

    //Here I want to process routeInformation 
} 

私を助けてください。 :)

答えて

1

あなたは

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
    //add your processing code here 
}); 
+0

が答えてくれてありがとう方法委任あなたの中にこれを行うことができますが、動作しませんようです:( – Ovidiu

0
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
    //add your background processing code here 

dispatch_async(dispatch_get_main_queue(), ^{ 
//add processing on main thread 
}); 
関連する問題