ما هو Core Data ولماذا تحتاجه؟
\n\nCore Data ليس مكتبة بالمعنى التقليدي (مثل Alamofire أو SnapKit)، بل هو إطار عمل قوي من Apple لإدارة نموذج البيانات وضمان استمرارية (حفظ) البيانات في تطبيقات iOS وmacOS وtvOS وwatchOS. إنه مدمج في SDK ولا يتطلب تثبيتًا منفصلاً عبر مديري الحزم مثل CocoaPods أو Swift Package Manager.
\n\nلماذا تحتاج Core Data؟ في تطوير التطبيقات المحمولة الحديثة، يكاد يكون من الضروري دائمًا تخزين البيانات محليًا: سواء كانت قائمة مهام، أو سجل محادثات، أو إعدادات المستخدم، أو ذاكرة تخزين مؤقت للأخبار. يوفر Core Data لهذا الغرض مجموعة كاملة تتضمن:
\n- \n
- نموذج البيانات (NSManagedObjectModel) — وصف للكيانات وخصائصها وعلاقاتها. \n
- السياق (NSManagedObjectContext) — "مسودة" حيث تعمل مع الكائنات قبل حفظها. \n
- منسق التخزين الدائم (Persistent Store Coordinator) — جسر بين السياق والتخزين الفعلي (SQLite، XML، ملف ثنائي، إلخ). \n
- الحاوية الدائمة (Persistent Container) — غلاف مبسط (ظهر في iOS 10) يجمع جميع المكونات. \n
على عكس الاستخدام البسيط لـ SQLite أو UserDefaults، يدير Core Data تلقائيًا دورة حياة الكائنات، ويدعم التراجع عن التغييرات، والتحميل البطيء، والتخزين المؤقت، والتحقق من الصحة، وحتى التكامل مع iCloud. وهذا يجعله أداة لا غنى عنها لأي تطبيق جاد يعمل مع البيانات.
\n\nتثبيت Core Data
\n\nCore Data هو جزء من أطر عمل Apple النظامية. لا تحتاج إلى تنفيذ pip install أو npm install. لاستخدامه، يكفي استيراد الإطار إلى مشروعك.
1. إضافة الإطار إلى المشروع
\nعند إنشاء مشروع جديد في Xcode، يمكنك تحديد خانة الاختيار "Use Core Data" فورًا. إذا كان المشروع موجودًا بالفعل، أضف الإطار يدويًا:
\n- \n
- اختر مشروعك في المستكشف (Project Navigator). \n
- انتقل إلى علامة التبويب "General" الخاصة بالهدف (Target). \n
- مرر لأسفل إلى قسم "Frameworks, Libraries, and Embedded Content". \n
- اضغط على "+" واختر
CoreData.framework. \n
2. إنشاء ملف نموذج البيانات
\nستحتاج أيضًا إلى ملف بامتداد .xcdatamodeld. عادةً ما يتم إنشاؤه تلقائيًا عند تفعيل Core Data. إذا لم يكن موجودًا، قم بإنشاء ملف جديد: File → New → File → Core Data → Data Model.
3. الاستيراد في الكود
\nفي ملفات Swift حيث ستعمل مع Core Data، أضف:
\nimport CoreData\n\nعند هذا الحد، اكتمل التثبيت. Core Data جاهز للاستخدام.
\n\nبداية سريعة: مثال كود
\n\nلننظر إلى مثال بسيط: إنشاء كيان "User" بخصائص "name" و"age"، وحفظ البيانات وقراءتها.
\n\nالخطوة 1: إنشاء نموذج البيانات
\nافتح ملف .xcdatamodeld. أضف كيانًا (Entity) باسم "User". أضف الخصائص: name (نوع String) و age (نوع Int16). أنشئ فئة لهذا الكيان: Editor → Create NSManagedObject Subclass. سيقوم Xcode بإنشاء الملفات User+CoreDataProperties.swift و User+CoreDataClass.swift.
الخطوة 2: إعداد الحاوية الدائمة (Persistent Container)
\nفي AppDelegate (أو في مدير منفصل) نقوم بإنشاء الحاوية:
\nimport CoreData\n\nclass PersistenceController {\n static let shared = PersistenceController()\n \n let container: NSPersistentContainer\n \n init() {\n container = NSPersistentContainer(name: "YourModelName") // اسم ملف .xcdatamodeld الخاص بك\n container.loadPersistentStores { (storeDescription, error) in\n if let error = error as NSError? {\n fatalError("Unresolved error \\(error), \\(error.userInfo)")\n }\n }\n }\n \n var cont