2012-10-08 3 views
1

Je récupère des données via NSURLConnction à partir d'un serveur et je souhaite remplir une tableview à partir d'un tableau récupéré. Les données apparaissent dans le journal de méthode déléguée NSURLConnection mais j'ai réalisé que numberOfRowsInSection de la méthode délégué UITableView (DM) feux avantUITableView délégué déclenche le délégué NSURLConnection

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {} 

DM de NSURLConnection. et cela cause un problème pour moi parce que même dur je reçois les données correctement retourné nombre de rangées est toujours 0 (zéro) .. Comment puis-je résoudre ce problème s'il vous plaît partager toute idée .. Merci

+0

appel [tableView reloadData]; à la fin de -connection: didReceiveData: – Moxy

+0

@Moxy merci. vous pourriez donner comme réponse aussi. ça a marché – ilhnctn

Répondre

2

didRecieveData peut être appelé plusieurs fois et n'indique pas que toutes les données sont extraites. Vous devez implémenter une propriété privée sur votre classe telle que;

@property (nonatomic,retain) NSMutableData tableData; 

et sur votre didRecieveData;

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
    [self.tableData appendData:data]; 
} 

Après que lorsque votre connexion est fermée

-(void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    // use tableData and refresh table... 
    [self.tableView reloadData]; 
} 
1

Vous devez appeler [tableView reloadData]; à la fin de -connection:didReceiveData: afin de mettre à jour votre vue tabulaire.

Editer: Bartu a raison! Vous devez l'appeler à la fin de -connectionDidFinishLoading:

Questions connexes