我正在尝试使用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];
});
答案 0 :(得分:0)
如何在viewDidLoad中设置" myURL"?如果操作系统调用viewDidUnload并再次运行应用程序,则会调用viewDidLoad并再次设置myURL。如果是这种情况,您应该在每次调用getInfo时设置myURL。