صندوق المؤلف


ناقش مشروعك

من نحن

نحن شريك Microsoft Gold مع وجودها في جميع أنحاء الولايات المتحدة والهند. نحن مزود خدمات تقنية معلومات ديناميكي ومهني يخدم المؤسسات والشركات الناشئة ، ويساعدها على مواجهة تحديات الاقتصاد العالمي. نحن نقدم خدمات في مجال استشارات إدارة علاقات العملاء وتنفيذها ، وتطوير التطبيقات ، وتطوير تطبيقات الهاتف المحمول ، وتطوير الويب ، والتطوير الخارجي.

البيانات الأساسية مع Swift

بدء استخدام البيانات الأساسية (CRUD) باستخدام Swift

By سوبود درموان / 27 يناير 2022

3 نوفمبر، 2022
بدء استخدام البيانات الأساسية (CRUD) باستخدام Swift

البيانات الأساسية هو إطار عمل رسومي ومستمر ، يتم استخدامه في أجهزة Apple مع أنظمة تشغيل macOS و iOS. البيانات الأساسية تم تقديمه لأول مرة في نظام التشغيل Mac OS X 10.4 Tiger و iOS مع iPhone SDK 3.0. تسمح البيانات ليتم تنظيمها بطريقة نموذج الكيان العلائقي - السمة ، بحيث يمكن تحويلها إلى تسلسل إلى مخازن XML ، أو ثنائية ، أو SQLite.

اطلع على استخدام البيانات الأساسية لحفظ ملفات بيانات دائمة للاستخدام دون اتصال، لتخزين البيانات المؤقتة ، ولإضافة وظيفة التراجع إلى تطبيقك على جهاز واحد.

تعكس البيانات الأساسية تلقائيًا مخططك إلى ملف CloudKit حاوية لمزامنة البيانات عبر أجهزة متعددة في حساب iCloud واحد.

يمكنك تحديد أنواع البيانات والعلاقات الخاصة بك وتطوير تعريفات الفئات ذات الصلة. يمكن لـ Core Data إدارة مثيلات الكائن في وقت التشغيل من خلال محرر نموذج البيانات في Core Data.

تحتوي Core Data على عيوب معينة حيث يمكنها فقط تخزين البيانات بمجرد إدخالها ، وهو ما لا يشبه قاعدة بيانات SQL النموذجية. 

بمعنى آخر ، تحتفظ Core Data برسم بياني للكائن في الذاكرة ومن ثم لا يمكنها العمل إلا مع السجلات الموجودة في الذاكرة. يمكنك فهم هذا مثل ، لنفترض أنك تريد حذف 100 سجل أو تحديثها ، لذلك تحتاج أولاً إلى تحميل جميع السجلات في الذاكرة.

واجهت البيانات الأساسية السابقة بعض المشكلات مع تعدد مؤشرات الترابط ، ولكن على مر السنين ، جعلت التحسينات في تطوير Core Data من توافقها مع تعدد مؤشرات الترابط.

التراجع عن التغييرات الفردية أو المجمعة وإعادتها

البيانات الأساسية هذه الميزة التراجع والإعادة. يتتبع مدير التراجع التغييرات التي تحدث في البيانات ويمكنه التراجع عنها كلما دعت الحاجة. هذا يجعل عمل المطور أسهل. 

عرض التزامن

يوفر CoreData عرض الجدول وعرض المجموعة والتي تكون مفيدة عندما تريد مزامنة طرق العرض والبيانات الخاصة بك.

الإصدار والهجرة

تساعدك CoreData في إصدار نموذج بياناتك وترحيل بيانات المستخدم مع تطور التطبيق.

مهام بيانات الخلفية

CoreData يعمل مهام بيانات حظر واجهة المستخدم، مثل تحليل JSON إلى كائنات ، ولكن في الخلفية ، والتي يمكن أيضًا تخزينها مؤقتًا أو تخزينها لتقليل الرحلات ذهابًا وإيابًا للخادم.

أيضا ، اقرأ: تطوير تطبيقات الأجهزة المحمولة الأصلية: الإيجابيات والسلبيات والبدائل وتحسين التكلفة

CURD in swift (إنشاء ، تحديث ، استرداد ، حذف)

دعنا ننشئ مشروعًا جديدًا لفهم كيفية عمل Core Data ودعنا نختار "استخدم البيانات الأساسية". يمكنك أيضًا إضافة البيانات الأساسية إلى مشروعك بعد ذلك ، ولكن هذا أسهل ، حيث سيتم تقديم كل شيء لك.

أنشئ مشروعًا باستخدام "استخدام البيانات الأساسية"

بمجرد إنشاء المشروع ، سترى ملفًا مثل CoreDataTest.xcdatamodeld تم إنشاؤه بالفعل ، يمكنك أيضًا إضافة الملف إلى مشروع موجود.

إضافة كيان

بمجرد النقر فوقه ، سترى أداة. تتيح لك هذه الأداة تكوين الكيانات ، وتمثل هذه الكيانات نماذج البيانات.

هنا يمكنك تحديد بعض الأشياء لكل كيان ولكن تذكر ذلك السمات و  العلاقات سيكون الأكثر أهمية.

تكوين اسم الكيان والسمات

مكدس البيانات الأساسية

داخل AppDelegateأطلقت حملة كود مكدس البيانات الأساسية لديه توثيق واضح في شكل تعليقات ، يقوم بإعداد الحاوية الدائمة ويحفظ البيانات وإذا كان هناك أي تغييرات يتم حفظها.

يمكنك بسهولة حفظ وإحضار السياق من Core Data Stack بسبب AppDelegate هو الملف الأول الذي يتم تشغيله بمجرد تشغيل التطبيق.

نظرًا لأنك قمت بتحويل بياناتنا في كيان المستخدم ، يمكنك الآن إضافة بعض السجلات وحفظها في CoreData.

أيضا ، اقرأ: دليل تطوير واعتماد إستراتيجية تطبيقات الجوال للشركات

حفظ السجلات في البيانات الأساسية

يتضمن إجراء إضافة السجلات إلى Core Data المهام التالية:

  • الرجوع إلى الحاوية الثابتة
  • قم بإنشاء السياق
  • أنشئ كيانًا
  • قم بإنشاء سجل جديد
  • لكل مفتاح ، تحتاج إلى تعيين قيم للسجلات.

منذ أن تم إعداد الحاوية في مندوبي التطبيقات. ومن ثم ، تحتاج إلى الرجوع إلى تلك الحاوية.

let appDelegate = UIApplication.shared.delegate as! AppDelegate

لنقم بإنشاء سياق من هذه الحاوية.

let context = appDelegate.persistentContainer.viewContext

لنقم بإنشاء كيان وسجلات مستخدم جديدة.

let entity = NSEntityDescription.entity(forEntityName: "Users", in: context)
let newUser = NSManagedObject(entity: entity!, insertInto: context)

أخيرًا ، أضف بعض البيانات إلى السجل الذي تم إنشاؤه حديثًا.

newUser.setValue("Abhishek", forKey: "username")
newUser.setValue("2311", forKey: "password")
newUser.setValue("21", forKey: "age")

على الرغم من أن الطرق المستخدمة لحفظ السياق موجودة بالفعل في ملف AppDelegate.swift، ولكن يمكن أيضًا إجراء تعريف واضح للكود لحفظ السياق في قاعدة البيانات. تذكر أن تلف هذا بـ do try and catch block ، لأنه سيساعد في معالجة الاستثناءات. 

do { 
  try context.save()      
 } catch {      
  print("Error saving")
}

الآن ، في كل مرة تقوم فيها بتشغيل تطبيقنا ، ستتم إضافة كيانات جديدة إلى السجلات في Core Data.

أيضا ، اقرأ: كيفية الاستعانة بمصادر خارجية لتطوير تطبيقات الأجهزة المحمولة في عام 2021: 7 أشياء يجب وضعها في الاعتبار

استرداد / جلب من البيانات الأساسية

إجراء جلب البيانات المحفوظة واضح ومباشر. لديها المهمة التالية:

  • صياغة وتنظيم طلب نوع NSFetchRequest للكيان.
  • استخدم المسند لتصفية البيانات (إذا لزم الأمر).
  • قم بإحضار النتيجة من السياق في شكل مصفوفة [NSManagedObject].
  • أنت الآن بحاجة إلى التكرار من خلال مصفوفة للحصول على قيمة للمفتاح المحدد.
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
        //request.predicate = NSPredicate(format: "age = %@", "21")
request.returnsObjectsAsFaults = false        
do {
            let result = try context.fetch(request)
            for data in result as! [NSManagedObject] 
{
    print(data.value(forKey: "username") as! String)
  }

       } catch {

           print("Failed")
}

تحديث البيانات في البيانات الأساسية

لتحديث السجلات أولاً وقبل كل شيء ، تحتاج إلى جلب البيانات باستخدام المسند كما هو موضح أعلاه في عملية استرداد البيانات. ثم فيما يلي بعض الخطوات التي يجب اتباعها:

  • ضع إطارًا للطلب بمسند للكيان 
  • إحضار السجل ، انشر ذلك Set New value with key
  • وسياق الحفظ الأخير مشابه لسياق تكوين البيانات.

لجميع هذه المهام ، يمكنك استخدام نفس الكود أعلاه.

حذف البيانات الموجودة في "البيانات الأساسية"

لحذف السجل أولاً وقبل كل شيء ، تحتاج إلى العثور على الكائن الذي تريد حذفه بواسطته طلب الجلب، ثم اتبع الخطوات التالية لحذف السجل:

  • صياغة الطلب مع المسند للكيان 
  • قم بإحضار السجل الذي تريد حذفه
  • وإنشاء سياق حذف (كائن) استدعاء (المرجع الصورة المرفقة أدناه)
let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
let context = self.appDel.managedObjectContext!
context.del(data)
do {
try context.save()
}
catch {
    // Handle Error
}

البيانات الأساسية: NSPredicate في Swift

المسندات هي اختبارات بسيطة ، تُستخدم لتصفية البيانات التي تحتاجها في مجموعة البيانات الناتجة لدينا. سيتم تطبيق الاختبار على كل كائن في كيان البيانات الأساسية الخاص بك. يتم استخدام المسندات تمامًا مثل أوامر SQL البسيطة.

let query = "Suraj"

let request: NSFetchRequest&lt;Person&gt; = Person.fetchRequest()request.predicate = NSPredicate(format: "name LIKE %@", query)request.predicate = NSPredicate(format: "name == %@", query)

تماما مثل "LIKE"في المثال أعلاه ، يحتوي NSPredicate على العديد من الكلمات الرئيسية مثل:

يحتوي ، يتطابق ، يبدأ وينتهي.

أيضا ، اقرأ: أساسيات Flutter: لماذا نستخدم Flutter لتطوير تطبيقات الأجهزة المحمولة

وفي الختام

تعد Core Data مناسبة تمامًا للتطبيقات التي تتطلب إدارة رسم بياني للكائنات المعقدة. يمكن لـ Core Data فقط القيام بسحرها لأنها تحافظ على الرسم البياني للكائن الذي يعمل في الذاكرة. هناك العديد من الأشياء المعقدة التي يمكننا القيام بها باستخدام البيانات الأساسية مثل - إضافة المسندات والعلاقات المعقدة لقواعد البيانات وتتبع تغييرات البيانات والمزيد. بينما تستخدم المزيد من البيانات الأساسية وتغوص فيها ، تصبح الأمور أكثر تعقيدًا ، ولكن هذه هي أساسيات البيانات الأساسية.

[sc name = "Mobile App Development"] [add_newsletter] [add_related_page_diff_contents blog_cat = "mobile-development"]

البيانات الأساسية هو إطار عمل رسومي ومستمر ، يتم استخدامه في أجهزة Apple مع أنظمة تشغيل macOS و iOS. البيانات الأساسية تم تقديمه لأول مرة في نظام التشغيل Mac OS X 10.4 Tiger و iOS مع iPhone SDK 3.0. تسمح البيانات ليتم تنظيمها بطريقة نموذج الكيان العلائقي - السمة ، بحيث يمكن تحويلها إلى تسلسل إلى مخازن XML ، أو ثنائية ، أو SQLite.

اطلع على استخدام البيانات الأساسية لحفظ ملفات بيانات دائمة للاستخدام دون اتصال، لتخزين البيانات المؤقتة ، ولإضافة وظيفة التراجع إلى تطبيقك على جهاز واحد.

تعكس البيانات الأساسية تلقائيًا مخططك إلى ملف CloudKit حاوية لمزامنة البيانات عبر أجهزة متعددة في حساب iCloud واحد.

يمكنك تحديد أنواع البيانات والعلاقات الخاصة بك وتطوير تعريفات الفئات ذات الصلة. يمكن لـ Core Data إدارة مثيلات الكائن في وقت التشغيل من خلال محرر نموذج البيانات في Core Data.

تحتوي Core Data على عيوب معينة حيث يمكنها فقط تخزين البيانات بمجرد إدخالها ، وهو ما لا يشبه قاعدة بيانات SQL النموذجية. 

بمعنى آخر ، تحتفظ Core Data برسم بياني للكائن في الذاكرة ومن ثم لا يمكنها العمل إلا مع السجلات الموجودة في الذاكرة. يمكنك فهم هذا مثل ، لنفترض أنك تريد حذف 100 سجل أو تحديثها ، لذلك تحتاج أولاً إلى تحميل جميع السجلات في الذاكرة.

واجهت البيانات الأساسية السابقة بعض المشكلات مع تعدد مؤشرات الترابط ، ولكن على مر السنين ، جعلت التحسينات في تطوير Core Data من توافقها مع تعدد مؤشرات الترابط.

التراجع عن التغييرات الفردية أو المجمعة وإعادتها

البيانات الأساسية هذه الميزة التراجع والإعادة. يتتبع مدير التراجع التغييرات التي تحدث في البيانات ويمكنه التراجع عنها كلما دعت الحاجة. هذا يجعل عمل المطور أسهل. 

عرض التزامن

يوفر CoreData عرض الجدول وعرض المجموعة والتي تكون مفيدة عندما تريد مزامنة طرق العرض والبيانات الخاصة بك.

الإصدار والهجرة

تساعدك CoreData في إصدار نموذج بياناتك وترحيل بيانات المستخدم مع تطور التطبيق.

مهام بيانات الخلفية

CoreData يعمل مهام بيانات حظر واجهة المستخدم، مثل تحليل JSON إلى كائنات ، ولكن في الخلفية ، والتي يمكن أيضًا تخزينها مؤقتًا أو تخزينها لتقليل الرحلات ذهابًا وإيابًا للخادم.

أيضا ، اقرأ: تطوير تطبيقات الأجهزة المحمولة الأصلية: الإيجابيات والسلبيات والبدائل وتحسين التكلفة

CURD in swift (إنشاء ، تحديث ، استرداد ، حذف)

دعنا ننشئ مشروعًا جديدًا لفهم كيفية عمل Core Data ودعنا نختار "استخدم البيانات الأساسية". يمكنك أيضًا إضافة البيانات الأساسية إلى مشروعك بعد ذلك ، ولكن هذا أسهل ، حيث سيتم تقديم كل شيء لك.

أنشئ مشروعًا باستخدام "استخدام البيانات الأساسية"

بمجرد إنشاء المشروع ، سترى ملفًا مثل CoreDataTest.xcdatamodeld تم إنشاؤه بالفعل ، يمكنك أيضًا إضافة الملف إلى مشروع موجود.

إضافة كيان

بمجرد النقر فوقه ، سترى أداة. تتيح لك هذه الأداة تكوين الكيانات ، وتمثل هذه الكيانات نماذج البيانات.

هنا يمكنك تحديد بعض الأشياء لكل كيان ولكن تذكر ذلك السمات و  العلاقات سيكون الأكثر أهمية.

تكوين اسم الكيان والسمات

مكدس البيانات الأساسية

داخل AppDelegateأطلقت حملة كود مكدس البيانات الأساسية لديه توثيق واضح في شكل تعليقات ، يقوم بإعداد الحاوية الدائمة ويحفظ البيانات وإذا كان هناك أي تغييرات يتم حفظها.

يمكنك بسهولة حفظ وإحضار السياق من Core Data Stack بسبب AppDelegate هو الملف الأول الذي يتم تشغيله بمجرد تشغيل التطبيق.

نظرًا لأنك قمت بتحويل بياناتنا في كيان المستخدم ، يمكنك الآن إضافة بعض السجلات وحفظها في CoreData.

أيضا ، اقرأ: دليل تطوير واعتماد إستراتيجية تطبيقات الجوال للشركات

حفظ السجلات في البيانات الأساسية

يتضمن إجراء إضافة السجلات إلى Core Data المهام التالية:

  • الرجوع إلى الحاوية الثابتة
  • قم بإنشاء السياق
  • أنشئ كيانًا
  • قم بإنشاء سجل جديد
  • لكل مفتاح ، تحتاج إلى تعيين قيم للسجلات.

منذ أن تم إعداد الحاوية في مندوبي التطبيقات. ومن ثم ، تحتاج إلى الرجوع إلى تلك الحاوية.

let appDelegate = UIApplication.shared.delegate as! AppDelegate

لنقم بإنشاء سياق من هذه الحاوية.

let context = appDelegate.persistentContainer.viewContext

لنقم بإنشاء كيان وسجلات مستخدم جديدة.

let entity = NSEntityDescription.entity(forEntityName: "Users", in: context)
let newUser = NSManagedObject(entity: entity!, insertInto: context)

أخيرًا ، أضف بعض البيانات إلى السجل الذي تم إنشاؤه حديثًا.

newUser.setValue("Abhishek", forKey: "username")
newUser.setValue("2311", forKey: "password")
newUser.setValue("21", forKey: "age")

على الرغم من أن الطرق المستخدمة لحفظ السياق موجودة بالفعل في ملف AppDelegate.swift، ولكن يمكن أيضًا إجراء تعريف واضح للكود لحفظ السياق في قاعدة البيانات. تذكر أن تلف هذا بـ do try and catch block ، لأنه سيساعد في معالجة الاستثناءات. 

do { 
  try context.save()      
 } catch {      
  print("Error saving")
}

الآن ، في كل مرة تقوم فيها بتشغيل تطبيقنا ، ستتم إضافة كيانات جديدة إلى السجلات في Core Data.

أيضا ، اقرأ: كيفية الاستعانة بمصادر خارجية لتطوير تطبيقات الأجهزة المحمولة في عام 2021: 7 أشياء يجب وضعها في الاعتبار

استرداد / جلب من البيانات الأساسية

إجراء جلب البيانات المحفوظة واضح ومباشر. لديها المهمة التالية:

  • صياغة وتنظيم طلب نوع NSFetchRequest للكيان.
  • استخدم المسند لتصفية البيانات (إذا لزم الأمر).
  • قم بإحضار النتيجة من السياق في شكل مصفوفة [NSManagedObject].
  • أنت الآن بحاجة إلى التكرار من خلال مصفوفة للحصول على قيمة للمفتاح المحدد.
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
        //request.predicate = NSPredicate(format: "age = %@", "21")
request.returnsObjectsAsFaults = false        
do {
            let result = try context.fetch(request)
            for data in result as! [NSManagedObject] 
{
    print(data.value(forKey: "username") as! String)
  }

       } catch {

           print("Failed")
}

تحديث البيانات في البيانات الأساسية

لتحديث السجلات أولاً وقبل كل شيء ، تحتاج إلى جلب البيانات باستخدام المسند كما هو موضح أعلاه في عملية استرداد البيانات. ثم فيما يلي بعض الخطوات التي يجب اتباعها:

  • ضع إطارًا للطلب بمسند للكيان 
  • إحضار السجل ، انشر ذلك Set New value with key
  • وسياق الحفظ الأخير مشابه لسياق تكوين البيانات.

لجميع هذه المهام ، يمكنك استخدام نفس الكود أعلاه.

حذف البيانات الموجودة في "البيانات الأساسية"

لحذف السجل أولاً وقبل كل شيء ، تحتاج إلى العثور على الكائن الذي تريد حذفه بواسطته طلب الجلب، ثم اتبع الخطوات التالية لحذف السجل:

  • صياغة الطلب مع المسند للكيان 
  • قم بإحضار السجل الذي تريد حذفه
  • وإنشاء سياق حذف (كائن) استدعاء (المرجع الصورة المرفقة أدناه)
let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
let context = self.appDel.managedObjectContext!
context.del(data)
do {
try context.save()
}
catch {
    // Handle Error
}

البيانات الأساسية: NSPredicate في Swift

المسندات هي اختبارات بسيطة ، تُستخدم لتصفية البيانات التي تحتاجها في مجموعة البيانات الناتجة لدينا. سيتم تطبيق الاختبار على كل كائن في كيان البيانات الأساسية الخاص بك. يتم استخدام المسندات تمامًا مثل أوامر SQL البسيطة.

let query = "Suraj"

let request: NSFetchRequest&lt;Person&gt; = Person.fetchRequest()request.predicate = NSPredicate(format: "name LIKE %@", query)request.predicate = NSPredicate(format: "name == %@", query)

تماما مثل "LIKE"في المثال أعلاه ، يحتوي NSPredicate على العديد من الكلمات الرئيسية مثل:

يحتوي ، يتطابق ، يبدأ وينتهي.

أيضا ، اقرأ: أساسيات Flutter: لماذا نستخدم Flutter لتطوير تطبيقات الأجهزة المحمولة

وفي الختام

تعد Core Data مناسبة تمامًا للتطبيقات التي تتطلب إدارة رسم بياني للكائنات المعقدة. يمكن لـ Core Data فقط القيام بسحرها لأنها تحافظ على الرسم البياني للكائن الذي يعمل في الذاكرة. هناك العديد من الأشياء المعقدة التي يمكننا القيام بها باستخدام البيانات الأساسية مثل - إضافة المسندات والعلاقات المعقدة لقواعد البيانات وتتبع تغييرات البيانات والمزيد. بينما تستخدم المزيد من البيانات الأساسية وتغوص فيها ، تصبح الأمور أكثر تعقيدًا ، ولكن هذه هي أساسيات البيانات الأساسية.

خدمات تطوير تطبيقات الجوال

هل تريد الاستفادة من تكنولوجيا الهاتف المحمول لعملك؟ Cynoteck هو مزود خدمات تطوير تطبيقات الجوال وقفة واحدة. نحن نقدم خدمات تطوير تطبيقات iOS و Android حتى تتمكن من الوصول إلى جمهورك المستهدف على أي جهاز.



ضيف
0 التعليقات
التقيمات المضمنة
عرض جميع التعليقات
0
أحب أفكارك ، يرجى التعليق.x
()
x