我已经建立了一个基本的Web XML到Core Data解析系统,但是对于如何一次启动多个解析器并知道它们何时完成感到困惑。

这是我当前的设置,仅获取一个已解析的xml文件(“新闻”)。但是我有几个需要解析的xml文件(“sport”,“shop”等)。如何将所有这些关闭,并知道何时完成?

// ViewController.m

DataGrabber *dataGrabber = [[DataGrabber alloc] init];
dataGrabber.delegate = self;
[dataGrabber getData:@"news"];


// DataGrabber delegate method (within ViewController) which gets called when dataGrabber has got all of the XML file
- (void) dataGrabberFinished:(DataGrabber *)dataGrabber
{
   NSManagedObjectContext *context = [self managedObjectContext];
   NSError *parseError = nil;
   // Parser puts the xml into core data. Do I need delegate on this too?
   Parser *xmlParse = [[Parser alloc] initWithContext:context];
   [xmlParse parseXMLFileWithData:dataGrabber.payload parseError:&parseError];
   [xmlParse release];
}

(这是此问题的后续部分-Returning data from data-grabbing class from web?)

最佳答案

一种选择是计算创建的数量,然后每个调用一种从该总数倒数的方法。当其归零时,它们全部完成。

您将需要为解析器设置一个委托,就像您为下载器所做的一样。

关于iphone - 代表困惑..我如何找出几位代表何时完成任务?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3933192/

10-11 23:20
查看更多