2012-06-13 4 views
0

J'essaye d'analyser JSON avec NSJSONSerialization d'iOS5. Ce code CORRIGE CORRECTEMENT les données que je voulais pour la première fois, MAIS ALORS LES DONNÉES ONT JUSTE RESTE LES MÊMES. Le JSON sur l'URL a déjà changé, mais le code a continué à me donner les premières données analysées, ce qui est maintenant incorrect. Peu importe combien de fois je "construis et cours", ça me donne toujours la même chose.NSJSONSerialization ne pas mettre à jour les données

Lorsque j'ai copié le code dans le nouveau projet, cela fonctionne, encore une fois, pour la première fois, puis fait la même chose.

Je n'ai aucune idée où le problème est, peut-être cache?

Merci pour votre aide !!!

- (void)fetchedData:(NSData *)responseData { 
    NSError* error; 
    NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData 
                options:kNilOptions 
                 error:&error]; 
    NSArray* allDepartures = [json objectForKey:@"departures"]; 

    NSLog(@"departures: %@", allDepartures); 
    NSDictionary* stops = [allDepartures objectAtIndex:0]; 
    NSNumber* time = [stops objectForKey:@"expected_mins"]; 
    NSString* name = [stops objectForKey:@"headsign"]; 

    nameLabel.text = [NSString stringWithFormat:@"%@",name]; 
    timeLabel.text = [NSString stringWithFormat:@"%i",[time intValue]]; 
} 

- (IBAction)getInfo:(id)sender { 
    dispatch_async(kBgQueue, ^{ 
     NSData* data = [NSData dataWithContentsOfURL: myURL]; 
     [self performSelectorOnMainThread:@selector(fetchedData:) 
     withObject:data waitUntilDone:YES]; 
}); 
+0

après un moment (comme une heure), il se charge comme lorsque l'application est installée (les données sont correctes), puis il fait la même chose, ne pas mettre à jour –

Répondre

0

Comment définir "myURL", uniquement dans viewDidLoad? Après un certain temps, si le système d'exploitation appelle viewDidUnload et que vous réexécutez l'application, viewDidLoad est appelée et myURL est à nouveau définie. Si c'est le cas, vous devez définir myURL chaque fois que vous appelez getInfo.

+0

Merci pour votre réponse. Je l'ai essayé, mais je n'ai toujours pas travaillé. Je pense que cela a quelque chose à voir avec le cache. La première fois que j'ai couru l'application, il a fallu 2-3 secondes pour charger, mais après cela, il apparaît juste sans chargement. –

+0

définissez un point d'arrêt sur la ligne de données NSData * et vérifiez que myURL est correct – user1447414

Questions connexes