2011-12-11 44 views
1

我一直在想,如果我應該發佈這個問題,但我試圖瞭解可能發生什麼,並不知道。iOS模擬器獲取connectionDidReceiveResponse與沒有互聯網

我的應用程序從服務器下載一些xml文件。 我試過它沒有互聯網連接(我的路由器關閉,wifi關閉),但模擬器不斷收到200 http響應並顯示下載的數據。

我已經記錄了響應的狀態碼並獲得200,並且currentRequest url和info是正確的(資源的url)。

是否有任何緩存或模擬器獲取數據的地方?

模擬器上狀態欄上的網絡圖標始終打開。

回答

2

你可以試試這段代碼。它不會緩存數據。

NSMutableDictionary* headers = [[[NSMutableDictionary alloc] init] autorelease]; 
[headers setValue:@"no-cache" forKey:@"Cache-Control"]; 
[headers setValue:@"no-cache" forKey:@"Pragma"]; 

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:TIMEOUT_REQUEST]; 
[request setHTTPMethod:@"GET"]; 
[request setAllHTTPHeaderFields:headers]; 
1

的ASY的方式來解決這個問題是使用的NSMUtableURLRequest下面的方法:「永遠不要緩存內容」

[request setCachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData]; 

的​​值是最嚴格選項,但如果您想要更具體的控制,請查看NSURLRequestCachePolicy枚舉的文檔,瞭解所有可能的選項。