2011-01-29 4 views
0

Je dois faire un appel à NSURLConnection et ont le délégué suivant:délégué NSURLConnection et une table peuplant vue

- (void)connectionDidFinishLoading:(NSURLConnection *)connection { 
    [connection release]; 

    NSString *responseString = [[NSString alloc] initWithData:responseData 
     encoding:NSUTF8StringEncoding]; 
    [responseData release]; 

    results = [NSArray array]; 
    results = [responseString JSONValue]; 
     NSLog(@"Number of rows: %d", [results count]); 
} 

//table view number of rows  
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
     // Return the number of rows in the section. 
     //return [_userInfo.friendsInfo count]; 
     NSLog(@"Number of rows: %d", [results count]); 
     return [results count]; 
    } 

Comme vous pouvez le voir, j'ai essayé d'imprimer le nombre d'entrées dans le tableau et je suis 5 quand à l'intérieur du délégué pour NSURLConnection et 0 dans le tableauView numberOfRowsInSection. Je voudrais utiliser les données que j'ai obtenues de NSURLConnection pour remplir la table. Comment puis-je faire ceci?

Répondre

3

Je vois deux problèmes potentiels:

  1. Il vous manque retain. La ligne "results = [tableau NSArray];" est inutile, et vous devriez conserver le JSONValue en tant que "results = [[responseString JSONValue] retain];" (N'oubliez pas de libérer à un moment donné!)
  2. De plus, rechargez-vous la tableView après avoir obtenu les données? Vous devriez faire quelque chose comme [table reloadData]; ou [self.tableView reloadData]; en fonction de la structure de votre classe.
1

Conservez-vous le tableau sur lequel pointe le résultat? Je pense que vous devez appeler setResults (s'il est synthétisé) ou conserver explicitement.

Questions connexes