私は持っている:
1) 2 つの非同期 NSUrlRequestを同時に開始する
2) 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
// ..
}
問題: 最初のイベントがここに到着すると、オブジェクトを配列に追加できます。しかし、2 番目が到着すると、EXC_BAD_ACCESS があります。