Я пытаюсь заставить несколько NSURLConnections работать параллельно (синхронно), однако, если он не работает в главном потоке (блок кода закомментирован ниже), соединение с URL не работает вообще (нетметодов делегата NSURLConnection вызваны).Вот код, который у меня есть (файл реализации подкласса NSOperation):
- (void)start
{
NSLog(@"DataRetriever.m start");
if ([self.DRDelegate respondsToSelector:@selector(dataRetrieverBeganExecuting:)])
[self.DRDelegate dataRetrieverBeganExecuting:identifier];
if ([self isCancelled]) {
[self finish];
} else {
/*
//If this block is not commented out NSURLConnection works, but not otherwise
if (![NSThread isMainThread])
{
[self performSelectorOnMainThread:@selector(start) withObject:nil waitUntilDone:NO];
return;
}*/
SJLog(@"operation for <%@> started.", _url);
[self willChangeValueForKey:@"isExecuting"];
_isExecuting = YES;
[self didChangeValueForKey:@"isExecuting"];
NSURLRequest * request = [NSURLRequest requestWithURL:_url];
_connection = [[NSURLConnection alloc] initWithRequest:request
delegate:self];
if (_connection == nil)
[self finish];
} //not cancelled
}//start
Пробежал по нему с помощью отладчика, и после завершения этого метода запуска ни один из делегатов NSURLConnection не сработал (я установил точки останова там).Но на основной ветке все работает просто отлично.Есть идеи, что случилось?Спасибо!