Я думаю, что вы можете использовать NSURLConnection и NSOperationQueue, как вы уже написали.NSURLConnection имеет функцию класса
+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))handler
Там вы можете определить, к какому NSOperationQueue он должен принадлежать, и вы можете определить обработчик завершения.Обработчик - это блок, который будет выполнен после завершения NSURLConnection.В блоке вы можете получить доступ к NSURLResponse.Поскольку все дело в асинхронном пользовательском интерфейсе, к которому вы будете доступны.
Одним большим преимуществом здесь является то, что блоки могут выполняться на разных ядрах процессора.