أدلة حاوية التطبيق
استخدم Documents و Caches والمواقع المؤقتة.
أدلة حاوية التطبيق درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.
مجلدات عزل التطبيق
تعمل التطبيقات داخل بيئة معزولة؛ فلا يُسمح لها بالكتابة إلا داخل حاويتها الخاصة. وتوجد مجلدات قياسية للمستندات وذاكرة التخزين المؤقت والملفات المؤقتة.
العثور على مجلد المستندات
تُرجع FileManager.urls(for:in:) عناوين URL لمجلد معروف. ويحتوي .documentDirectory على بيانات المستخدم التي ينبغي نسخها احتياطيًا.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
print("Documents path ends correctly: \(docs.lastPathComponent)")إنشاء عناوين URL للملفات
ألحِق اسم ملف بعنوان URL الخاص بالمجلد للحصول على مسار كامل لملفاتك.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let file = docs.appendingPathComponent("profile.json")
print(file.lastPathComponent)مجلد ذاكرة التخزين المؤقت
يخزّن .cachesDirectory البيانات التي يمكنك إعادة إنشائها. وقد يحذفها النظام عند انخفاض مساحة القرص، لذا لا تحتفظ هنا مطلقًا ببيانات لا يمكن استبدالها.
import Foundation
let fm = FileManager.default
let caches = fm.urls(for: .cachesDirectory, in: .userDomainMask).first!
print("Caches dir name: \(caches.lastPathComponent)")المجلد المؤقت
يوفّر FileManager.default.temporaryDirectory مساحة عمل للملفات قصيرة العمر التي ينبغي لك تنظيفها بنفسك.
import Foundation
let tmp = FileManager.default.temporaryDirectory
let scratch = tmp.appendingPathComponent("work.tmp")
print("Temp file path ready: \(scratch.lastPathComponent)")المستندات مقابل ذاكرة التخزين المؤقت والملفات المؤقتة
استخدم المستندات لبيانات المستخدم التي ينشئها (وتُنسخ احتياطيًا)، وذاكرة التخزين المؤقت للبيانات القابلة لإعادة الإنشاء، وtmp للملفات المؤقتة التي يمكن التخلص منها.
import Foundation
// Choose the right folder for the data's lifetime.
print("Documents = backed up, Caches = purgeable, tmp = transient")دعم التطبيق
يحتوي .applicationSupportDirectory على البيانات التي يديرها التطبيق ولا يراها المستخدم مباشرة، مثل قواعد البيانات. وغالبًا ما تنشئه عند التشغيل الأول.
import Foundation
let fm = FileManager.default
let support = fm.urls(for: .applicationSupportDirectory, in: .userDomainMask).first!
try? fm.createDirectory(at: support, withIntermediateDirectories: true)
print("Ensured Application Support exists")الحفظ في المستندات
اجمع بين عنوان URL للمجلد واستدعاء للكتابة لحفظ بيانات المستخدم داخل البيئة المعزولة.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let url = docs.appendingPathComponent("note.txt")
try? "hello".write(to: url, atomically: true, encoding: .utf8)
print("Saved into Documents")القراءة من جديد
اقرأ ملفات البيئة المعزولة بالطريقة نفسها التي تقرأ بها أي عنوان URL لملف، لأن المسار صالح بالكامل داخل الحاوية.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let url = docs.appendingPathComponent("note.txt")
if let text = try? String(contentsOf: url, encoding: .utf8) {
print(text)
}الاستبعاد من النسخ الاحتياطي
عيّن قيمة المورد isExcludedFromBackup للملفات الكبيرة القابلة لإعادة الإنشاء حتى لا تتضخم نسخ iCloud الاحتياطية.
import Foundation
var url = URL(fileURLWithPath: "/tmp/big.cache")
var values = URLResourceValues()
values.isExcludedFromBackup = true
try? url.setResourceValues(values)
print("Marked excluded from backup")أهمية العزل
تختلف مسارات البيئة المعزولة باختلاف التثبيت والجهاز، لذا لا تكتبها بشكل ثابت مطلقًا. احصل دائمًا على المجلدات أثناء التشغيل باستخدام FileManager.
import Foundation
// Never hardcode /var/mobile/... — resolve at runtime instead.
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
print("Resolved Documents dynamically: \(!docs.path.isEmpty)")تحقق سريع
أي مجلد ينبغي أن يحتوي على بيانات المستخدم التي يجب نسخها احتياطيًا؟
مراجعة
تخزّن التطبيقات الملفات في مجلدات البيئة المعزولة التي يتم الحصول عليها عبر FileManager.urls(for:in:): المستندات لبيانات المستخدم المنسوخة احتياطيًا، وذاكرة التخزين المؤقت للبيانات القابلة لإعادة الإنشاء، وtmp للملفات المؤقتة، بالإضافة إلى دعم التطبيق. احصل على المسارات أثناء التشغيل، ولا تكتبها بشكل ثابت مطلقًا. بهذا تكتمل دورة إدخال وإخراج الملفات.
تعلم Swift مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 122
- الدروس
- 409
الأسئلة الشائعة
هل درس «أدلة حاوية التطبيق» مجاني؟
نعم — نص درس «أدلة حاوية التطبيق» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.
ماذا ستتعلم في «أدلة حاوية التطبيق»؟
استخدم Documents و Caches والمواقع المؤقتة. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟
لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «أدلة حاوية التطبيق»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟
نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- عناوين URL ومسارات الملفات
- قراءة البيانات وكتابتها
- إدارة الأدلة
- أدلة حاوية التطبيق