2012-06-13 2 views
0

iOS5의 NSJSONSerialization으로 JSON을 구문 분석하려고합니다. 이 코드는 처음에 원했던 데이터를 올바르게 분석하지만 데이터는 그대로 유지됩니다. URL의 JSON이 이미 변경되었지만 코드가 구문 분석 한 첫 번째 데이터를 계속 제공 했으므로 이제는 올바르지 않습니다. 내가 몇 번이나 "건설하고 운영"하든, 그것은 나에게 똑같은 것을 계속주고 있습니다.NSJSONSerialization이 데이터를 업데이트하지 않습니다.

코드를 새 프로젝트에 복사하면 코드가 처음으로 다시 작동 한 다음 동일한 작업을 수행합니다.

어디서 문제가 있는지, 캐시가 있는지 모릅니다.

도움 주셔서 감사합니다.

- (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

잠시 후 (예 : 1 시간) 앱을 처음 설치할 때처럼 (데이터가 올바른 경우)로드 한 다음 업데이트하지 않는 것과 동일한 작업을 수행합니다. –

답변

0

viewDidLoad에서만 "myURL"을 어떻게 설정합니까? OS가 viewDidUnload를 호출하고 애플리케이션을 다시 실행하면 viewDidLoad가 호출되고 myURL이 다시 설정됩니다. 그 경우 getInfo를 호출 할 때마다 myURL을 설정해야합니다.

+0

응답 해 주셔서 감사합니다. 나는 그것을 시도했지만, 여전히 작동하지 않았다. 캐시와 관련이 있다고 생각합니다. 처음 앱을 실행했을 때로드하는 데 2 ​​~ 3 초가 걸렸지 만 이후에는로드하지 않고 나타납니다. –

+0

NSData * 데이터 라인에서 중단 점을 설정하고 myURL을 다시 확인하십시오. – user1447414