البرمجة

تخزين Swift Struct في Core Data

To store a Swift Struct in Core Data on iOS, you need to convert the struct to a class that can be represented in Objective-C. One way to do this is to create a separate class for your Stop struct and use it in your Favourite class. Here’s how you can do it:

First, create a class for your Stop struct:

swift
import Foundation import CoreData @objc(StopEntity) class StopEntity: NSManagedObject { @NSManaged var name: String @NSManaged var id: String }

Make sure to replace StopEntity with the actual name you want to use for your Core Data entity representing the Stop struct.

Then, update your Favourite class to use StopEntity:

swift
import Foundation import CoreData class Favourite: NSManagedObject { @NSManaged var origin: StopEntity struct Stop { var name: String var id: String init(name: String, id: String) { self.name = name self.id = id } } func getStop() -> Stop { return Stop(name: origin.name, id: origin.id) } func setStop(stop: Stop) { origin.name = stop.name origin.id = stop.id } }

In your Core Data model file (xcdatamodeld), you can set up Favourite to have a one-to-one relationship with StopEntity.

When you need to access the Stop struct from Favourite, you can use the getStop() and setStop(stop:) methods to convert between Stop and StopEntity.

المزيد من المعلومات

بالطبع! في هذا السيناريو، يتم استخدام Core Data لتخزين هيكل البيانات. يقدم Core Data واجهة لإدارة نموذج البيانات الخاص بتطبيقك، بما في ذلك القدرة على تخزين واستعادة البيانات بسهولة. ومن الجدير بالذكر أن Core Data يستخدم SQLite كمحرك تخزين للبيانات بشكل افتراضي.

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

باستخدام هذا النهج، يمكنك تخزين بيانات الـ Stop كجزء من كائن Favourite في Core Data، وتحويلها من وإلى كائنات NSManagedObject المناسبة عند الحاجة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر