Je travaille sur mon premier exemple JSON dans l'objectif-c et j'ai rencontré this un excellent tutoriel que j'essaie de reproduire. En cours de route, j'ai décidé de pousser le JSON retourné dans mon tableView déjà en train de fonctionner (juste pour m'assurer que je pouvais faire quelque chose avec les données dans la vue).Pouvez-vous définir les valeurs de la source de données tableView dans "connectionDidFinishLoading"?
- (void)viewDidLoad {
[super viewDidLoad];
responseData = [[NSMutableData data] retain];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.unpossible.com/misc/lucky_numbers.json"]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
[connection release];
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
[responseData release];
NSArray *luckyNumbers = [responseString JSONValue];
NSMutableString *text = [NSMutableString stringWithString:@"Nums "];
for (int i = 0; i < [luckyNumbers count]; i++)
[text appendFormat:@"%@", [luckyNumbers objectAtIndex:i]];
self.movies = [[NSArray alloc] initWithObjects:@"First", text, @"Last", nil];
}
Ce que j'ai trouvé est que lorsque je mets le tableau dans « connectionDidFinishLoading » il apparaît comme rien dans l'application en cours d'exécution - méthode encore si je mets ce directement dans le « viewDidLoad » avec 3 valeurs de chaîne simples ça se montre bien.
Lorsque je débogue l'application en cours d'exécution, je vois la réponse JSON et la chaîne semble valide (aucun problème que je peux voir).
Est-ce que la source de données pour ma tableView est déjà définie avant cette méthode "connectionDidFinishLoading" ou est-ce que j'ai manqué quelque chose?