使用缓存数据的viewDidLoad中的NSURLRequest?

时间:2013-08-28 00:56:23

标签: iphone ios objective-c nsurlrequest

我在viewDidLoad中填充tableView以从我的服务器获取一些JSON。

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. 在模拟器中再次启动应用程序 (即从模拟器屏幕运行它
  5. 它无法从服务器获取实时更改的数据。我不明白这一点。当我通过主页按钮退出模拟器中的应用程序时,程序是否完全退出?我也可以通过手机获得完全相同的行为。

    我想在viewDidLoad中始终从我的服务器获取实时数据。我做错了什么?

1 个答案:

答案 0 :(得分:1)

这正是解决我的问题的原因:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(wokeUp) name:UIApplicationDidBecomeActiveNotification object:nil];