2012-09-12 8 views
7

मैं NSURL से कनेक्शन कर रहा हूं और मुझे सभी कैश नीति को बाईपास करने का अनुरोध करने की आवश्यकता है। मैंने उदाहरणों को देखा है:आईओएस कैश नीति

NSURLRequest *request = [NSURLRequest requestWithURL:baseURL cachePolicy:0 timeoutInterval:10]; 
self.urlConnection = [[[NSURLConnection alloc] initWithRequest:request delegate:self] autorelease]; 

क्या मैं पूछ सकता हूं कि कैश नीति 0 का क्या अर्थ है? संख्या का प्रतिनिधित्व करने की कोशिश करने की कोशिश की है लेकिन मुझे कोई जवाब नहीं मिल रहा है। धन्यवाद! :)

उत्तर

6

आप पर NSURLRequestCachePolicy enum एक नजर है चाहिए, यहां 0 मतलब NSURLRequestUseProtocolCachePolicy है, इसका मतलब है कि NSURLRequest से डेटा लोड नहीं होगा सर्वर हर बार।

enum 
{ 
    NSURLRequestUseProtocolCachePolicy = 0, 
    NSURLRequestReloadIgnoringLocalCacheData = 1, 
    NSURLRequestReloadIgnoringLocalAndRemoteCacheData =4, 
    NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData, 
    NSURLRequestReturnCacheDataElseLoad = 2, 
    NSURLRequestReturnCacheDataDontLoad = 3, 
    NSURLRequestReloadRevalidatingCacheData = 5 
}; 
typedef NSUInteger NSURLRequestCachePolicy 
+0

धन्यवाद! – Annabel

+0

मुझे लगता है कि यदि कैश समाप्त हो गया है, या डेटा परिवर्तन का पुनरीक्षण करने के लिए यह सर्वर से डेटा लोड करेगा – huync

2

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLRequest_Class/Reference/Reference.html

NSURLRequestUseProtocolCachePolicy = 0

निर्दिष्ट करता है कि कैशिंग तर्क, प्रोटोकॉल कार्यान्वयन में परिभाषित यदि कोई हो, किसी खास URL लोड अनुरोध के लिए प्रयोग किया जाता है। यह URL लोड अनुरोधों के लिए डिफ़ॉल्ट नीति है।

उदाहरण: यदि आप HTTP का उपयोग करते हैं तो HTTP-हेडर फ़ील्ड का मूल्यांकन करने के लिए मूल्यांकन किया जाएगा या तो कैशिंग का उपयोग किया जाना चाहिए या नहीं।

अपने मामले में सही नीति है:

NSURLRequestReloadIgnoringLocalCacheData

+0

मदद के लिए धन्यवाद! विस्तृत जानकारी के लिए – Annabel

1

इस लेख के अनुसार: - 24 घंटे http://blackpixel.com/blog/2012/05/caching-and-nsurlconnection.html, यदि आप NSURLRequestUseProtocolCachePolicy उपयोग कर रहे हैं और सर्वर या तो समय-सीमा या अधिकतम उम्र वापस नहीं करता है, तो डिफ़ॉल्ट संचय समय अंतराल 6 है। तो इस स्थिति के बारे में सावधान रहें। NSURLRequestUseProtocolCachePolicy का उपयोग करते समय अधिकतम आयु या समाप्ति सेट करना बेहतर अभ्यास है।

संबंधित मुद्दे