1

サーバーから JSON を取得するために、viewDidLoad に tableView を設定します。

NSURL *theEvents = [NSURL URLWithString:@"http://192.168.1.100:3000/events.json"];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:theEvents cachePolicy: NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:60.0];

NSHTTPURLResponse *response = nil;
NSData *data  = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

このコードをデバッグして実行すると、サーバーからライブ データが取得されます。(デバッガーを)停止して再起動すると、正常に動作し、サーバーからライブデータを取得します。ただし、次の場合:

  1. アプリを起動します(データは正常に取得されます)
  2. シミュレーターでアプリを停止します (シミュレーターは実行されたままです)
  3. サーバー上のデータを変更する
  4. シミュレーターでアプリを再度起動します (つまり、シミュレーター画面から実行します)。

サーバーからライブで変更されたデータを取得しません。私はこれを理解していません。シミュレーターでホームボタンからアプリを終了すると、プログラムが完全に終了しませんか? 電話でもまったく同じ動作が得られます。

viewDidLoad でサーバーから常にライブ データを取得したいと考えています。私は何を間違っていますか?

4

1 に答える 1

1

これはまさに私の問題を解決したものです:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(wokeUp) name:UIApplicationDidBecomeActiveNotification object:nil];
于 2013-08-29T01:50:43.247 に答える