Я использую класс LocalSubject.swift, который я храню в RealmDB.
class LocalSubject: Object{
@objc dynamic var subjectName: String?
private var modules: [Module] = [Module]()
@objc dynamic var moduleArrayJSON: String? = nil
public func addModule(module: Module){
modules.append(module)
}
public func setModules(modules: [Module]){
self.modules = modules
print("LocalSubject.swift > setModules() > " + String(describing: modules.count) + " > " + String(describing: self.modules.count))
}
public func getModules()-> [Module]{
print("LocalSubject.swift > getModules() > " + String(describing: modules.count) + " > " + String(describing: self.modules.count))
return modules.sorted(by: { $0.displayOrder! < $1.displayOrder!})
}
}
Я сохраняю класс в БД путем преобразования массива "modules" в json и обратно.В приведенной ниже функции «модули» вычисляются правильно с count = 3, затем я устанавливаю его в объекте «maths» LocalSubject.Теперь, когда я пытаюсь получить «модули» из «математики», я всегда получаю пустой массив.
public func createModuleArrayFromJSONInSubjects(){
let modules = getModuleArrayFromJSON(moduleArrayJSON: (maths?.moduleArrayJSON)!)
for module in modules{
print("-> " + module.title!)
}
maths?.setModules(modules: modules)
for module in (maths?.getModules())!{
print("---> " + module.title!)
}
}
Я не могу понять это, это кажется странным.Я что-то упустил?