Partage
  • Partager sur Facebook
  • Partager sur Twitter

[iOS] Chargement de données

    30 octobre 2012 à 14:41:17

    Bonjour,
    J'aimerai savoir où mettre mon code récupérant des données au format json au lancement de l'application.

    Je l'ai pour le moment placé dans AppDelegate : didFinishLaunchingWithOptions

    De plus j'aimerai appeler plusieurs flux en même temps sans attendre le résultat du premier j'ai donc placé de code suivant :

    [NSThread detachNewThreadSelector:@selector(recupActu) toTarget:self withObject:nil];
     [NSThread detachNewThreadSelector:@selector(recupCourses) toTarget:self withObject:nil];


    J'ai initialisé 2 variables booléenne à false et lorsque recupActu ou recupCourses est terminé je passe le booléen correspondant à true. Cela me permet d'attendre de recevoir tout mes flux avant d'afficher la premières vue grâce à une boucle du genre :

    while(!actu ||  !courses |){
    }



    Je ne pense pas que ce soit une méthode optimale quelqu'un serait il comment charger correctement des flux de données au lancement d'une application?
    • Partager sur Facebook
    • Partager sur Twitter
      30 octobre 2012 à 18:24:55

      Tu peux utilisé dispatch_queue avec une sémaphores:
      http://developer.apple.com/library/ios [...] onQueues.html

      Après je te conseille pas de faire un appel à ces flux de manières synchrone (surtout si tu stocke les données dans l'appli), pourquoi tu fais pas ca en asynchrone et tu reload la view quand le traitement est fini ?
      • Partager sur Facebook
      • Partager sur Twitter
        31 octobre 2012 à 9:11:30

        Merci je regarde ça de suite.

        Je n'affiche pas la vue puis reload car la première vue est une liste d'éléments qui doivent être récupérés avant d'être affiché sinon liste vide...


        Edit : Ceci est bien en asynchrone?

        [NSThread detachNewThreadSelector:@selector(recupActu) toTarget:self withObject:nil];


        Après je fais en while donc je casse le asynchrone mais au moins les flux sont récupérés de manière asynchrone non?
        • Partager sur Facebook
        • Partager sur Twitter
          31 octobre 2012 à 13:15:06

          K si tu n'as pas de BDD t'as pas le choix et t'es obliger de faire ca en synchrone.
          Je te conseille quand même de faire une sémaphore si tu veux un truc plus propre (le while bloquant c'est moche :p)
          • Partager sur Facebook
          • Partager sur Twitter

          [iOS] Chargement de données

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown