Можно ли обернуть NSUrlConnection в блоках стиля gcd и запустить его в очереди low_priority?
Мне нужно убедиться, что мои соединения не происходят в основном потоке, а соединения должны быть асинхронными. Мне также нужно несколько одновременных запросов сразу.
Если я иду по маршруту gcd, я не уверен, в какой поток запускаются методы NSUrlConnectionDelegate.
NSURLConnection полагается на делегатов, поэтому, как только соединение будет завершено, любой класс-оболочка, который обрабатывает его, должен будет вызвать своего вызывающего. Я не уверен, как обращаться со всеми различными обратными вызовами, которые вызывают при запуске/завершении работы соединения:
- (void)connection:(NSURLConnection *)aConnection didReceiveResponse:(NSURLResponse *)response;
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)incrementalData;
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;
- (void)connectionDidFinishLoading:(NSURLConnection *)connection;
Должен ли я просто вызвать синхронные версии, но обернутые в блоки gcd? И если я хочу отменить вызов, используйте 'dispatch_suspend'?
dispatch_async(queue,^{
NSString* result = [self mySynchronousHttp:someURLToInvoke];
});
// If I need to cancel
dispatch_suspend(queue);