2012-09-16 106 views
0

在iOS 5中,如果我的應用程序終止,我的NSURLConnection緩存會被吹走。即使我的應用程序終止並重新啓動後,如何堅持NSURLConnection緩存?只要我的應用程序保持活躍狀態​​,緩存工作就會很好。NSURLConnection緩存持久性

我在我的NSURLRequest中使用了NSURLRequestUseProtocolCachePolicy

採樣頭由我的服務器返回:

Cache-Control:public, max-age=3600 
Content-Encoding:deflate 
Content-Length:1606 
Content-Type:application/json; charset=utf-8 
Date:Sun, 16 Sep 2012 20:22:14 GMT 
Expires:Sun, 16 Sep 2012 21:22:15 GMT 
Last-Modified:Sun, 16 Sep 2012 20:22:15 GMT 
Vary:* 

如果我的應用程序在5分鐘後結束,我重新開始,一個完整的新的下載嘗試(驗證與查爾斯HTTP監聽)...

+0

除此之外,這取決於遠程服務(服務器)設置的緩存標頭。確保你引用一個相關的更好的幫助。 – Till

+1

感謝您更新您的問題 - 事實上,您的服務器在整個一小時的時間內要求進行適當的緩存。現在您需要的是磁盤緩存,並且在iOS5之前已被禁用(如果我正確記得)。請確保您閱讀以下有關該問題的優秀文章:[nsurlcache-uses-a-disk-cache-as-of-ios5](http://petersteinberger.com/blog/2012/nsurlcache-uses-a-disk -cache-as-of-ios5 /) – Till

+0

因此,在iOS 5+中,我是否需要額外的代碼? – jjxtra

回答

1

這似乎是我沒有設置磁盤緩存大小的結果。即使應用程序終止,將其設置爲500MB似乎仍然保留我的緩存。

+0

謝謝,我有同樣的問題。像這樣設置diskCapacity使緩存工作,即使應用程序終止並重新啓動: 'NSURLCache * cache = [NSURLCache sharedURLCache]; /* 50 MB緩存*/ [緩存setDiskCapacity:1024 * 1024 * 50];' – Lextar

+0

我有一個平庸的12 MB緩存,它似乎根本沒有使用它。有關這個問題的任何經驗? –

+0

你的回覆中有什麼在你的HTTP標頭中? – jjxtra