Caches Directory: यह क्या है, कैश प्रबंधन और डेटा सफ़ाई

लेखक: IT Sectr प्रकाशित: 2026-07-10 पढ़ने का समय: 10 मिनट

Caches Directory iOS एप्लिकेशन के सैंडबॉक्स में एक निर्देशिका है जो अस्थायी डेटा संग्रहीत करने के लिए डिज़ाइन की गई है जिसे नेटवर्क से पुनर्स्थापित या पुनः लोड किया जा सकता है। Apple File System Basics (2024) के अनुसार, सिस्टम डिस्क स्थान खाली करने के लिए किसी भी समय Caches Directory से फ़ाइलों को हटा सकता है — एप्लिकेशन को इन फ़ाइलों की अनुपस्थिति को सही ढंग से संभालना चाहिए और आवश्यकता पड़ने पर उन्हें पुनर्स्थापित करना चाहिए। Documents Directory के विपरीत, Caches का डेटा iCloud और iTunes बैकअप में शामिल नहीं होता, जिससे उपयोगकर्ता के क्लाउड स्टोरेज पर भार कम होता है।

मुख्य बिंदु

  • Caches Directory उन डेटा के लिए अस्थायी भंडारण है जिन्हें नेटवर्क से पुनर्स्थापित या पुनः निर्मित किया जा सकता है।
  • iOS सिस्टम डिवाइस में स्थान की कमी होने पर किसी भी समय Caches से फ़ाइलें हटा सकता है।
  • Caches का डेटा iCloud और iTunes बैकअप में शामिल नहीं होता है।
  • निर्देशिका का पथ NSCachesDirectory या FileManager.urls(for: .cachesDirectory) के माध्यम से प्राप्त किया जाता है।
  • Documents से मुख्य अंतर: Caches उपयोगकर्ता डेटा के लिए अभिप्रेत नहीं है जिसका खोना गंभीर हो।

iOS में Caches Directory क्या है?

Caches Directory iOS एप्लिकेशन सैंडबॉक्स के अंदर एक निर्देशिका है जो आवश्यकता पड़ने पर पुनर्स्थापित किए जा सकने वाले डेटा को संग्रहीत करने के लिए अनुकूलित है। Documents Directory के विपरीत, Caches उपयोगकर्ता डेटा के लिए नहीं है — यह एप्लिकेशन प्रदर्शन को गति देने के लिए अस्थायी भंडारण है।

iOS कैश की गई नेटवर्क प्रतिक्रियाओं, प्रीलोडेड छवियों, सीरियलाइज़्ड ऑब्जेक्ट्स और उन डेटा को संग्रहीत करने के लिए Caches Directory का उपयोग करता है जिन्हें एप्लिकेशन पुनर्स्थापित कर सकता है। डेवलपर्स को इस निर्देशिका में दीर्घकालिक डेटा भंडारण पर निर्भर नहीं रहना चाहिए।

Apple WWDC 2020 के अनुसार, लगभग 40% iOS एप्लिकेशन कैश की गई छवियों और नेटवर्क डेटा को संग्रहीत करने के लिए Caches Directory का उपयोग करते हैं, जबकि 25% डेवलपर्स इन निर्देशिकाओं के बीच अंतर को न समझने के कारण Caches में वह डेटा गलत तरीके से रखते हैं जो Documents या Application Support में होना चाहिए।

Caches का एक महत्वपूर्ण गुण: एप्लिकेशन को उन स्थितियों को सही ढंग से संभालना चाहिए जब सिस्टम द्वारा कैश फ़ाइल हटा दी गई हो। यदि कैश हटाने से एप्लिकेशन की कार्यक्षमता टूट जाती है, तो डेटा गलत निर्देशिका में संग्रहीत है।

Caches Directory का पथ कैसे प्राप्त करें

Swift में, Caches Directory का पथ .cachesDirectory के साथ मानक FileManager विधि का उपयोग करके प्राप्त किया जाता है। यह एक सरल ऑपरेशन है जो नेटवर्क डेटा के साथ काम करने वाले लगभग हर iOS एप्लिकेशन में उपयोग होता है।

swift
import Foundation

let fileManager = FileManager.default
guard let cachesURL = fileManager.urls(
    for: .cachesDirectory,
    in: .userDomainMask
).first else { return }

// Save cached JSON
let cacheFile = cachesURL.appendingPathComponent("feed_cache.json")
let jsonData = try JSONSerialization.data(
    withJSONObject: response,
    options: [.prettyPrinted]
)
try jsonData.write(to: cacheFile)

Objective-C, NSCachesDirectory के साथ NSSearchPathForDirectoriesInDomains का उपयोग करता है। हालाँकि Apple Swift API की सिफारिश करता है, Caches Directory के साथ Objective-C कोड कार्यशील और समर्थित बना हुआ है।

objective-c
@import Foundation;

NSArray *paths = NSSearchPathForDirectoriesInDomains(
    NSCachesDirectory,
    NSUserDomainMask,
    YES
);
NSString *cachesPath = paths.firstObject;
NSString *cacheFile = [cachesPath stringByAppendingPathComponent:@"feed_cache.plist"];

Swift प्रोजेक्ट्स को URL-आधारित API पसंद करना चाहिए: यह टाइप-सेफ है और SwiftUI और Combine जैसे आधुनिक फ्रेमवर्क के साथ बेहतर एकीकृत होता है।

Caches में कौन सा डेटा संग्रहीत करें

Caches Directory डेटा की कई श्रेणियों के लिए उपयुक्त है जिनका उपयोग एप्लिकेशन प्रदर्शन को गति देने के लिए करता है, लेकिन यह सत्य का एकमात्र स्रोत नहीं है। कैशिंग के लिए सही डेटा चुनना सीधे UX और एप्लिकेशन प्रदर्शन को प्रभावित करता है।

कैश की गई नेटवर्क प्रतिक्रियाएँ

API से JSON प्रतिक्रियाएँ, समाचार फ़ीड डेटा, ऑब्जेक्ट सूचियाँ — वह सब कुछ जो एप्लिकेशन सर्वर से पुनः डाउनलोड कर सकता है। HTTP प्रतिक्रियाओं की स्वचालित कैशिंग के लिए URLCache का उपयोग करें या सीरियलाइज़्ड ऑब्जेक्ट्स को मैन्युअल रूप से सहेजें।

चित्र और मीडिया फ़ाइलें

नेटवर्क से डाउनलोड की गई चित्र Caches Directory का सबसे सामान्य उपयोग मामला है। SDWebImage और Kingfisher जैसी लाइब्रेरीज़ डिफ़ॉल्ट रूप से कैश की गई छवियों को Caches में सहेजती हैं।

डेटा प्रकारCaches के लिए उपयुक्तअवधारण अवधि
JSON API प्रतिक्रियाएँहाँसिस्टम सफ़ाई तक
नेटवर्क से चित्रहाँसिस्टम सफ़ाई तक
डीबग लॉगशर्तसापेक्षtmp में बेहतर
गेम सेवनहींकेवल Documents
एप्लिकेशन कॉन्फ़िगरेशननहींApplication Support

यदि डेटा पुनर्स्थापित नहीं किया जा सकता, तो उसका स्थान Caches में नहीं है। यह सबसे सरल मापदंड है: कल्पना करें कि कल सिस्टम Caches से सभी फ़ाइलें हटा देगा। यदि एप्लिकेशन सही ढंग से काम करना जारी रखता है, तो डेटा सही ढंग से संग्रहीत है।

सिस्टम कैश सफ़ाई कैसे प्रबंधित करता है

iOS स्वचालित रूप से Caches Directory की सफ़ाई का प्रबंधन करता है, लेकिन सटीक ट्रिगर और एल्गोरिदम Apple द्वारा दस्तावेज़ित नहीं हैं। यह ज्ञात है कि सिस्टम डिस्क स्थान की कमी होने पर, साथ ही Offload Unused Apps सुविधा सक्रिय होने पर Caches से फ़ाइलें हटा सकता है।

सफ़ाई प्रक्रिया एप्लिकेशन के लिए पारदर्शी है: सिस्टम बिना सूचना के फ़ाइलें हटाता है। एप्लिकेशन को पढ़ने से पहले फ़ाइल की उपस्थिति की जाँच करनी चाहिए और अनुपस्थित होने पर इसे फिर से बनाना चाहिए। दीर्घकालिक भंडारण पर निर्भर न रहना Caches के साथ काम करते समय एक मुख्य आवश्यकता है।

Apple के लेख “File System Basics” (2024) के अनुसार, एप्लिकेशन को यह उम्मीद नहीं करनी चाहिए कि Caches Directory में फ़ाइलें सत्रों के बीच उपलब्ध होंगी। डेवलपर्स को फ़ॉलबैक तंत्र लागू करने की सलाह दी जाती है: यदि कैश की गई फ़ाइल गायब है, तो नेटवर्क से डेटा डाउनलोड करें और इसे फिर से Caches में सहेजें।

एक अलग परिदृश्य है एप्लिकेशन ऑफ़लोड (Offload)। जब यह सुविधा सक्रिय होती है, iOS एप्लिकेशन को हटा देता है लेकिन उसके Documents Directory को रखता है। Caches Directory इस प्रक्रिया में हटा दी जाती है। जो उपयोगकर्ता एप्लिकेशन को पुनर्स्थापित करता है, उसे कैश किया गया डेटा नहीं मिलेगा — एप्लिकेशन को इसे फिर से डाउनलोड करना होगा।

Caches Directory बनाम Temporary Directory

Caches और Temporary (tmp) निर्देशिकाओं के बीच अंतर अक्सर डेवलपर्स के बीच भ्रम पैदा करता है। दोनों निर्देशिकाएँ अस्थायी डेटा संग्रहीत करती हैं, लेकिन विभिन्न जीवनकाल गारंटी और उद्देश्यों के साथ।

विशेषताCaches DirectoryTemporary Directory
जीवनकालसत्र से सत्र (गारंटी नहीं)केवल सत्र के भीतर
सिस्टम सफ़ाईस्थान की कमी परसत्र समाप्ति या रीबूट पर
उद्देश्यप्रदर्शन को गति देने के लिए कैशअत्यधिक अस्थायी डेटा
उदाहरणकैश की गई चित्रनिर्यात से पहले अस्थायी फ़ाइल
बैकअपनहींनहीं

Caches चुनें यदि एप्लिकेशन लॉन्च के बीच डेटा रखना लाभदायक है लेकिन इसे पुनर्स्थापित किया जा सकता है। tmp का उपयोग करें यदि डेटा केवल वर्तमान सत्र में आवश्यक है और एप्लिकेशन समाप्त होने के बाद इसका कोई मूल्य नहीं है।

Caches के साथ काम करने के सर्वोत्तम अभ्यास

Caches Directory के साथ काम करने के लिए कई नियमों का पालन करना आवश्यक है जो डेटा हानि, अप्रत्याशित एप्लिकेशन व्यवहार और प्रदर्शन समस्याओं से बचने में मदद करते हैं।

पढ़ने से पहले हमेशा फ़ाइल की उपस्थिति जाँचें

FileManager.fileExists(atPath:) को Caches से प्रत्येक पढ़ने से पहले कॉल किया जाना चाहिए। यदि फ़ाइल गायब है, तो मूल स्रोत से डेटा लोड करें और कैश में सहेजें। कभी यह न मानें कि Caches में कोई फ़ाइल मौजूद है।

कैश आकार सीमित करें

अपने एप्लिकेशन में Caches Directory के लिए अधिकतम आकार निर्धारित करें। उदाहरण के लिए, चित्रों के लिए 50 MB और JSON प्रतिक्रियाओं के लिए 10 MB की सीमा। सीमा पार होने पर, संशोधन तिथि के अनुसार सबसे पुरानी फ़ाइलें हटाएँ।

swift
import Foundation

func trimCache(to maxSizeBytes: Int) {
    let cachesURL = FileManager.default
        .urls(for: .cachesDirectory, in: .userDomainMask)
        .first!

    guard let enumerator = FileManager.default
        .enumerator(
            at: cachesURL,
            includingPropertiesForKeys: [.fileSizeKey, .contentModificationDateKey]
        )
    else { return }

    // Enumerate and remove old files
    // when exceeding size limit
}

इन प्रथाओं का पालन यह सुनिश्चित करता है कि एप्लिकेशन सिस्टम कैश सफ़ाई क्रियाओं की परवाह किए बिना सही ढंग से काम करता है, और उपयोगकर्ता अप्रत्याशित डेटा हानि का सामना नहीं करते हैं।

अक्सर पूछे जाने वाले प्रश्न

क्या सिस्टम Caches Directory साफ़ करने से पहले एप्लिकेशन को सूचित करता है?

नहीं, iOS Caches से फ़ाइलें हटाने से पहले सूचनाएँ नहीं भेजता। सफ़ाई प्रक्रिया एप्लिकेशन के लिए पूरी तरह से पारदर्शी है। हटाने का पता लगाने का एकमात्र तरीका फ़ाइल पढ़ने का प्रयास करना है — FileManager nil लौटाता है या त्रुटि फेंकता है, और एप्लिकेशन को इस स्थिति को संभालना चाहिए।

क्या उपयोगकर्ता मैन्युअल रूप से Caches Directory साफ़ कर सकता है?

उपयोगकर्ता के पास Files या iTunes के माध्यम से Caches Directory तक सीधी पहुँच नहीं है। हालाँकि, वे Settings > General > Storage के माध्यम से सभी एप्लिकेशन का कैश साफ़ कर सकते हैं, एक विशिष्ट एप्लिकेशन चुनकर और “Offload App” दबाकर। iOS स्थान की कमी होने पर स्वचालित रूप से कैश साफ़ कर सकता है।

URLCache, Caches Directory में मैन्युअल सहेजने से कैसे अलग है?

URLCache Foundation से HTTP अनुरोध कैशिंग के लिए एक अंतर्निहित तंत्र है। यह स्वचालित रूप से कैश की गई प्रतिक्रियाओं को सहेजता और लोड करता है, आंतरिक रूप से Caches Directory का उपयोग करता है। मैन्युअल सहेजना अधिक नियंत्रण देता है: आप प्रारूप चुन सकते हैं, डेटा एन्क्रिप्ट कर सकते हैं और प्रत्येक फ़ाइल के जीवनकाल को व्यक्तिगत रूप से प्रबंधित कर सकते हैं।

एप्लिकेशन अपडेट होने पर Caches Directory का क्या होता है?

App Store के माध्यम से एप्लिकेशन अपडेट करने पर, Caches Directory संरक्षित रहती है। हालाँकि, यदि नए अपडेट को स्थापना के लिए अधिक स्थान की आवश्यकता होती है तो सिस्टम सामग्री को हटा सकता है। डेवलपर को अपडेट के बाद Caches की स्थिरता पर निर्भर नहीं रहना चाहिए — यह फ़ॉलबैक तंत्र लागू करने का एक अतिरिक्त कारण है।

NSURLSession के लिए स्वचालित कैशिंग कैसे बंद करें?

एक विशिष्ट NSURLSession सत्र के लिए URLCache को nil पर सेट करें या .reloadIgnoringLocalCacheData कैशिंग नीति का उपयोग करें। आप खाली कैश के साथ URLSessionConfiguration भी बना सकते हैं: sessionConfiguration.urlCache = nil। यह उन डेटा के लिए उपयोगी है जो हमेशा अद्यतित होने चाहिए।

सारांश

  • Caches Directory उन डेटा के लिए अस्थायी भंडारण है जिन्हें नेटवर्क से पुनर्स्थापित या पुनः निर्मित किया जा सकता है।
  • iOS सिस्टम एप्लिकेशन को सूचित किए बिना किसी भी समय Caches से फ़ाइलें हटा सकता है।
  • Caches का डेटा iCloud और iTunes बैकअप में शामिल नहीं होता, जिससे स्थान बचता है।
  • निर्देशिका का पथ Swift में FileManager.urls(for: .cachesDirectory) या Objective-C में NSSearchPathForDirectoriesInDomains है।
  • Caches में कैश की गई चित्र, API JSON प्रतिक्रियाएँ और अन्य पुनर्स्थापनीय डेटा संग्रहीत होते हैं।
  • tmp के विपरीत, Caches लॉन्च के बीच डेटा संरक्षित कर सकता है, लेकिन गारंटी के बिना।
  • Caches से पढ़ने से पहले हमेशा फ़ाइल उपस्थिति जाँचें और फ़ॉलबैक लोडिंग लागू करें।

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें