如何等待NSXmlParser完成委托方法?

时间:2012-08-18 07:01:37

标签: iphone objective-c ios

我从表视图中将nsdata提供给xmlparser。解析完成后,我想根据解析结果在表上设置状态。我做了以下事情:

    -(BOOL)getTheServerStatus:(NSData *)webData
{
    if (webData==NULL) 
    {
        return FALSE;
    }



    parser=[[NSXMLParser alloc]initWithData:webData];
    parser.delegate=self;

    [parser parse];

    if([strVal isEqualToString:@"ok"])
    {
        return TRUE;   
    }

    else 
    {
        return FALSE;

    }

}

但是我的控件在解析完成之前返回,所以我在表格端得到NULL。有没有办法等到所有解析完成而不阻塞主线程?

3 个答案:

答案 0 :(得分:0)

如果您在班级中使用NSXMLParser委托,可以通过以下委托方法找到它

//This method is called when the XML document has finished parsing, do a [self.tableView reloadData]; here
    - (void)parserDidEndDocument:(NSXMLParser *)parser
    {

    }

答案 1 :(得分:0)

为NSXMLParser类的父编写一个delegete,以便在解析完成时通知。

通知解析完成
- (void)parserDidEndDocument:(NSXMLParser *)parser

在该方法中,调用delgate到父类infonrming解析完成

快乐编码:)

答案 2 :(得分:-1)

使用

- (void)parserDidEndDocument:(NSXMLParser *)parser

委托方法。