NSJSONSerialization不更新数据

时间:2012-06-13 15:26:13

标签: iphone objective-c ios json nsjsonserialization

我正在尝试使用iOS5的NSJSONSerialization解析JSON。这段代码正确地解析了我想要的数据,但是数据只是保留了相同的数据。 URL上的JSON已经更改,但代码一直给我解析的第一个数据,现在这是不正确的。无论我“建立和运行”多少次,它都会给我同样的东西。

当我将代码复制到新项目时,它首次再次运行,然后执行相同的操作。

我不知道问题出在哪里,也许缓存?

谢谢你的帮助!!!

- (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];
});

1 个答案:

答案 0 :(得分:0)

如何在viewDidLoad中设置" myURL"?如果操作系统调用viewDidUnload并再次运行应用程序,则会调用viewDidLoad并再次设置myURL。如果是这种情况,您应该在每次调用getInfo时设置myURL。