Кто может мне помочь с кодом?
Мне нужно импортировать / предварительно загрузить мой JSON
Моя модель данных имеет три объекта и взаимосвязи друг с другом
Лайк и категории
Я хочу импортировать все свои товары и предоставить им каталог, если приложение запускается впервые.
Но если я сделаю это так, cat01 будет вставлен несколько раз, если я буду использовать его и для других предметов. Я хочу вставить 500 элементов и установить отношение только к 5 категориям - как я могу это сделать? А иногда один предмет имеет две категории?
Спасибо за помощь.
"entity1":
[{
"name": "Item1",
"info": "Loremipsum",
"categorie": {
"cat": "cat01"
},
"entity2": [{
"name": "ItemWithRelationship",
"info": "LoremipsumDolor"
}]
}]
//Preload - Relationships 2
fileprivate func preloadWithRelationshipsDECODE() {
guard let preloadFileURL = Bundle.main.url(forResource: "preload_DB", withExtension: "json") else {
return
}
guard let data = try? Data(contentsOf: preloadFileURL) else {
return
}
do {
//mit Array MIT Relationship
let results = try JSONDecoder().decode(Raum.self, from: data)
print(results.raum.count)
for result in results.entity1{
//Raum-DB
let entityRaum: String = String(describing: Raumliste.self)
let room = NSEntityDescription.insertNewObject(forEntityName: entityRaum, into: self.managedContext) as! Raumliste
room.name = result.name
room.info = result.info
//Categorie
let entityCat: String = String(describing: categorie.self)
let cat = NSEntityDescription.insertNewObject(forEntityName: entityCat, into: self.managedContext) as! Categorie
cat.name = result.categorie?.cat
myCat.categorie_rls = cat
myCat.categorie_rls?.name = result.categorie?.cat
for task in result.entity2!{
//Entitiy2-DB
let entityNR2: String = String(describing: MyEntity.self)
let extra = NSEntityDescription.insertNewObject(forEntityName: entityNR2, into: self.managedContext) as! MyEntity
extra.name = task.name!
room.addToExtraListe_rls(extra)
extra.info = task.info!
room.addToExtraListe_rls(extra)
saveContext()
}
do {
try managedContext.save()
print("gespeichert")
} catch {
print("Error saving todo: \(error)")
print ("No value associated with key someKey (\"actual_key_if_you_defined_your_own\").")
}
}
} catch let error as NSError {
print("Fehler: \(error.localizedDescription)")
}
}