私のviewControllerで、xmlパーサーを開始するクラスQuestionParserのインスタンスを作成します。私の質問は次のとおりです。プログラムが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) の最後に到達し、必要なものをビュー コントローラーに返します。パーサーに時間がかかる場合、私はさまよっていますが、それでも機能しますか?