2016-08-05 3 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 
}); 
Смежные вопросы