Я сохраняю и загружаю данные, используя следующие функции и моделирование со следующими структурами, , но я не могу прочитать массив EntityDat , не уверен, что это из-за EntityModel Struct или вызов при загрузке данных ( let entityData = try JSONDecoder (). Decode (EntityModel.self, from :loadedData) ) это неверно.
Я хочу, чтобы моя функция загрузки возвращала массив EntityData, который принадлежит его родительскому EntityModel. (например, ниже)
EntityModel {
{
"client_name": "John",
"rut": "70.605.045-5",
"segment": "Empresa"
},
{
"client_name": "Alex",
"rut": "60.345.234-1",
"segment": "Pyme"
},
{
"client_name": "Alice",
"rut": "12.426.434-5",
"segment": "Empresa"
},
}
Текущий вывод, который я получаю:
EntityData: EntityModel(entidad: nil)
Функция сохранения:
func saveEntityToCoreData2()-> Bool {
var SavedItem:Bool = true
var mDictionary : [String: Any] = [
"client_name": self.clientNameFromCore,
"rut": self.clientRutFromCore,
"segment": self.segmentFromCore ]
let jsonData = try! JSONSerialization.data(withJSONObject: mDictionary, options: [.prettyPrinted])
let json = String(data: jsonData, encoding: String.Encoding.utf8)!
print("Saved Entity Dictionary", json)
if self.saveRutSwitchOn
{
SecureData.save(key: "entityData", data: json.data(using: .utf8)!)
}
SavedItem = self.saveRutSwitchOn
return SavedItem
}
Функция загрузки:
func loadEntityToCoreData2() {
if let loadedData = SecureData.load(key: "entityData") {
do {
let entityData = try JSONDecoder().decode(EntityModel.self, from: loadedData)
print("EntityData: ", entityData)
} catch {
print(error.localizedDescription)
}
}
}
Struct:
//Entity Model
struct EntityModel: Codable {
let entidad: [EntityData]!
}
struct EntityData: Codable {
let client_name: String!
let rut: String!
let segment: String!
}