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 تک براہ راست رسائی نہیں ہے۔ تاہم، وہ ترتیبات > جنرل > اسٹوریج کے ذریعے تمام ایپلیکیشنز کا کیشے صاف کر سکتے ہیں، کسی مخصوص ایپلیکیشن کو منتخب کرکے «ایپ آف لوڈ کریں» دبا سکتے ہیں۔ 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 ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں