Reloader mon tablebiew après une requête

Salut à  tous, voilà  j'ai un petit soucis,


 


j'ai un tableview qui se recharge après avoir récupérer des données d'une base.


 


J'ai un blocks qui se charge de la requête : 



 (void)testWithCompletionBlock:(void (^)())completion {


dispatch_after(dispatch_time(DISPATCH_TIME_NOW,  NSEC_PER_SEC), dispatch_get_main_queue(), ^{
//toujours vérifié que le block != nil
if(completion)
{
completion();
            
}
        
});
    
    
}

ce block se charge de faire la requête : 



[self testWithCompletionBlock:^{
    //requete     
}];

Mon soucis est que une fois ma requête terminée , je veux reload mon tableview avec mes nouvelles données.  Pour ma part j'utilise un deuxième block qui se charge juste de faire un reload : 



  [self testWithCompletionBlock:^{
        //req1
        [self testWithCompletionBlock2:^{
             [_tableView reloadData];
        }];
}];

Je sais que c'est pas très adapter. Avez vous une meilleure idée. De plus, de temps en temps, le reload ne fonctionne pas car la 1er requête n'est pas encore terminée. 


 


Réponses

  • NiClouNiClou Membre
    avril 2014 modifié #2

    Alors je sais pas si c'est la meilleure solution mais tu pourrais faire:



    [self testWithCompletionBlock:^{
    //req1
    dispatch_async(dispatch_get_main_queue(), ^{
    [_tableView reloadData];
    });
    }];


    Ou bien, tu restes comme tu es, mais dans l'implémentation de ta méthode testWithCompletionBlock2 tu fais appel au mainThread. 

Connectez-vous ou Inscrivez-vous pour répondre.