1
我在我的viewDidLoad中填充tableView以從我的服務器獲取一些JSON。使用緩存數據的viewDidLoad中的NSURLRequest?
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];
當我調試並運行此代碼時,它從服務器獲取實時數據。如果我停下來(調試器)並重新開始,它也可以正常工作並從服務器獲取實時數據。但是,如果我:
- 啓動應用程序(數據檢索罰款)
- 停止在模擬器應用程序再次(模擬器保持運行)
- 變更的服務器
- 啓動應用程序的數據模擬器 (即從模擬器屏幕
它不會實時從服務器上更改的數據運行它。我不明白這一點。當我通過home鍵退出應用程序在模擬器中,程序沒有完全退出?我也通過電話獲得完全相同的行爲。
我想總是從viewDidLoad從我的服務器獲取實時數據。我究竟做錯了什麼?
你真的退出應用程序,還是你只是將其移動到背景是什麼?如果您只需按下模擬器中的模擬HOME按鈕或手機上的實際HOME按鈕,則不會殺死您的應用程序,只會將其移至背景,因此'-viewDidLoad'不會被調用除非您更換視圖控制器。 –
ooooookay,我很確定這是問題的關鍵。我真的認爲按主頁按鈕導致應用程序退出,而不是背景。 – simusid
好吧我很確定我需要使用 - (void)applicationDidBecomeActive:(UIApplication *)application – simusid