У меня есть:
1) Запуск 2 асинхронных NSUrlRequests одновременно
2) Как только один из двух запросов загрузил XMLданные, NSOperationQueue используется для запуска синтаксического анализатора XML.Таким образом, операции ParseOperations работают точно так же, как в примере Apple LazyTableImages.
InfoRequestHelper.m
// ...
case GetBlogEntries:
{
BlogParseOperation *parser = [[BlogParseOperation alloc] initWithXMLString:result delegate:self];
parser.tag = helper.requestTag;
[queue addOperation:parser]; // this will start the "ParseOperation"
[parser release];
break;
}
case GetTweets:
{
TwitterParseOperation *parser = [[TwitterParseOperation alloc] initWithXMLString:result delegate:self];
parser.tag = helper.requestTag;
[queue addOperation:parser]; // this will start the "ParseOperation"
[parser release];
break;
}
// ...
3) По завершении синтаксического анализа parser: didFinishParsing: срабатывает.
InfoRequestHelper.m
- (void)parser:(ParseOperationBase *)parser didFinishParsing:(NSArray *)entries
{
// Save data, remove completed request from list
[self.requestsInProgress removeObjectForKey:parser.tag];
[self.resultObjects addObjectsFromArray:entries]; // <= !!! EXC_BAD_ACCESS !!! here
// ..
}
Проблема: Когда первое событие приходит сюда, объекты могут быть добавлены в массив.Но когда приходит второе, появляется EXC_BAD_ACCESS.