Я использовал coredata давно назад.Но я знаю основы coredata для хранения и извлечения данных.
Но, в настоящее время я работаю с языком Swift.
У меня есть локальный файл json, и я делаю его анализ с помощью декодера и отображенияэти данные в табличном виде.
let path = Bundle.main.path(forResource: "file", ofType: "json")
do {
let data = try Data(contentsOf: URL(fileURLWithPath: path ?? ""), options: .mappedIfSafe)
let decoder = JSONDecoder()
do {
quData = try decoder.decode(quData.self, from: data)
DispatchQueue.main.async {
self.myTableView.reloadData()
}
} catch {
print("Json decoder error")
}
} catch {
print(LocalizedError.self)
}
Для этого я создал класс модели на основе значений ключей json.
Но, теперь я должен сохранить эти данные в Coredata и Fetch обратно,Необходимо показать в том же табличном виде.
Но у меня возникает путаница, сколько ключевых значений мне нужно создать.
Мой класс модели:
class QuData: Codable {
let qu: Qu
init(qu: Qu) {
self.qu = qu
}
}
class Qu: Codable {
let music: Music
let dance: dance
init(music: Music, dance: dance) {
self.music = music
self.dance = dance
}
}
class Maths: Codable {
let q1, q2: Q1
init(q1: Q1, q2: Q1) {
self.q1 = q1
self.q2 = q2
}
}
class Q1: Codable {
let query: String
let options: [String]
let answer: String
let q1Optional: Bool
enum CodingKeys: String, CodingKey {
case query, options, answer
case q1Optional = "optional"
}
init(question: String, options: [String], answer: String, q1Optional: Bool) {
self.query = query
self.options = options
self.answer = answer
self.q1Optional = q1Optional
}
}
class Sport: Codable {
let q1: Q1
init(q1: Q1) {
self.q1 = q1
}
}
Имои данные JSON:
{
"qu": {
"music": {
"q1": {
“query”: “What is your name?”,
"options": [
“Sony”,
“Samsung”,
“Apple”,
“MI”
],
"answer": “Apple”,
"optional": true
}
},
“dance”: {
"q1": {
"question": "5 + 1 = ?",
"options": [
“8”,
“9”,
“6”,
“23”
],
"answer": “23”,
"optional": false
},
"q2": {
"question": "12 - 4 = ?",
"options": [
“5”,
“4”,
“9”,
“6”
],
"answer": "4",
"optional": false
}
}
}
}
Как сохранить эти данные в Coredata и получить их, показывая в виде таблицы ..
И, две категории (музыка, танцы) в данных json, у меня естьпоказывать данные «Музыка» в 1-м разделе и данные «Танец» в виде таблицы.
Я полностью поражен тем, как создать такую структуру json в Entity с атрибутами и извлекать их, используя тот же класс модели (который ужесоздан для местного JSONразбор файлов).
Может кто-нибудь предложить мне двигаться дальше?