У меня есть следующие модели областей и класс провайдеров для сохранения данных в db области.
Это должно сохранить данные для RealmFormPalette
, RealmParentPalette
& RealmTextPalette
.Но он сохраняет только данные первых 2, т. Е. RealmFormPalette
, RealmParentPalette
.
. Я создал RealmTextPalette
, чтобы добавить какое-либо свойство поверх RealmParentPalette
.Таким образом, я создал больше палитр, таких как RealmDatePalette
, RealmNumberPalette
, которые имеют минимальное и максимальное значения.
class RealmFormPalette: RealmBaseModel {
@objc dynamic var projectId = ""
@objc dynamic var formId = ""
@objc dynamic var imageRoute: String?
let palettes = List<RealmParentPalette>()
static func from(_ domainObj: FormFieldDomainObj) -> RealmFormPalette {
let model = RealmFormPalette()
model.projectId = domainObj.projectId
model.formId = domainObj.formId
model.imageRoute = domainObj.imageRoute
for paletteDomainObj in domainObj.palettes {
let palette = RealmTextPalette.from(paletteDomainObj as! TextPaletteDomainObj)
model.palettes.append(palette.palette!)
}
return model
}
}
class RealmParentPalette: RealmBaseModel {
@objc dynamic var fieldId = ""
@objc dynamic var type = ""
@objc dynamic var question = ""
static func from(_ object: ParentPaletteDomainObj) -> RealmParentPalette {
let model = RealmParentPalette()
model.fieldId = object.fieldId
model.type = object.type
model.question = object.question
return model
}
}
class RealmTextPalette: Object {
let maxLength = RealmOptional<Int>()
@objc dynamic var palette: RealmParentPalette?
static func from(_ object: TextPaletteDomainObj) -> RealmTextPalette {
let model = RealmTextPalette()
model.palette = RealmParentPalette.from(object)
model.maxLength.value = object.maxLength
return model
}
}
class FormFieldDbProvider {
func insert(form: FormFieldDomainObj) {
try! getInstance().write {
getInstance().add(RealmFormPalette.from(form))
}
}
}