2011-03-20 1 views
0

J'ai une tableview qui est remplie par un StreamingXMLParser (https://github.com/AlanQuatermain/aqtoolkit). Lorsque j'exécute mon application, la tableView apparaît vide. D'abord je pensais que mon tableView n'affichait rien jusqu'à ce que l'analyseur xml async soit prêt, mais si je commence à défiler pendant l'analyse, la vue est soudainement remplie.Problème lors de l'affichage de mises à jour de table lors de l'analyse de xml avec AQXMLParser StreamingParser

Mon code est basé sur ParserExample (https://github.com/AlanQuatermain/ParserExample) et l'analyseur est appelé en utilisant la même méthode que l'exemple:

[parser parseAsynchronouslyUsingRunLoop: [NSRunLoop currentRunLoop] 
              mode: NSDefaultRunLoopMode 
           notifyingDelegate: self 
             selector: @selector(parser:completedOK:) 
             context: NULL] 

Je pense que mon problème est que mon tâche asynchrone prend trop de puissance de traitement. Qui a de l'expérience avec StreamingXMLParser et peut m'aider? Comment puis-je corriger mon application afin que tableView ait plus de priorité que l'analyse XML?

Le problème peut être simulé en téléchargeant l'exemple de projet et en insérant [NSThread sleepForTimeInterval: 0.2]; Après le [self.managedObjectContext save: NULL]; instruction dans la méthode endPost du parserDelegate.

Répondre

0

J'ai réussi à contourner le problème en appelant la méthode synchrone [parser parse] via un petit utilitaire appelé MBProgressHUD créé par Matej Bukovinski. Le MBProgressHUD appelle maintenant la méthode d'analyse async & résout mon problème. (Et donne un bon indicateur).

0

Je pense que le problème est dans votre analyse. Parce que quand vous parsiez des tags, ils ont des chaînes vides ou \n alors les premiers ont des lignes vides. Une autre chose qui peut arriver est que la réponse du serveur arrive trop tard. C'est pourquoi cela prend tellement de temps.

Vous devez placer des points d'arrêt, puis vérifier chaque donnée.

+0

Non, ce n'est pas ça. Cela avait quelque chose à voir avec la façon dont l'appel asynchrone est configuré. J'ai ouvert un bug dans le github au développeur pour voir s'il peut m'aider. – P5ycH0

Questions connexes