在我的viewController中,我創建了一個類QuestionParser的實例,它將啓動一個XML解析器。我的問題是:是否有可能解析器在程序到達compblock之前不會完成解析,從而返回nil參數或者甚至是錯誤?完成塊
MenuViewController.m
QuestionParser *parser = [[QuestionParser alloc]init];
[parser parseCategories:^(NSArray *categoryName, NSArray *categoryID)
{
if(categoryName)
{
NSlog(@"%@",categoryName);
}
}];
QuestionParser.m
(無效)parseCategories:(myCategoryCompletion)compblock {
[自parseCategories];
compblock(categoryName,categoryID);
}
我很抱歉,我沒有提供所有的信息,我會嘗試澄清情況。在parseCategories
功能我這樣做:
- (無效){parseCategories
NSLog(@"<> start parsing categories <>"); categoryParser = [[NSXMLParser alloc]initWithContentsOfURL:[URL]]; [categoryParser setDelegate:self]; [categoryParser parse]; }
,我希望這樣結束塊不我解析器的委託 「didFinishDocument
」 到達之前結束。情況會是這樣嗎?
現在,雖然測試這個函數,一切正常,我的解析器委託創建我需要從XML的數組,然後,它到達塊compblock(categoryName,categoryID)結束返回視圖控制器我什麼需要。我徘徊,如果解析器需要很長時間它仍然會工作?
無法理解問題。 – Abizern
您尚未提供有關'parseCategories'方法的足夠信息。 – Wain
爲了回答你的問題,我們需要看看'parseCategories:'的實現。 – neilco