Sto sviluppando un'app iOS che fondamentalmente recupera un JSON da una posizione remota, lo analizza e crea un'istanza delle classi per un paio dei suoi elementi. Per alcune visualizzazioni, questo dovrebbe darti un'idea di base di come appare il mio json:
{
"match": [
{
"id": 1,
"date": "1960-01-01",
"team 1": 1,
"team 2": 2
},
{
"id": 2,
"date": "1960-01-02",
"team 1": 1,
"team 2": 3
}
],
"team": [
{
"id": 1,
"name": "Team Red"
},
{
"id": 2,
"name": "Team Green"
},
{
"id": 3,
"name": "Team Yellow"
}
]
}
Questo JSON può diventare piuttosto pesante, una volta riempito completamente. Per il mio attuale sistema demo sto parlando di 40k linee e ~ 2 MB di dimensione del file, ma potrebbe facilmente andare ben oltre con i miei dati live. Ovviamente non sto caricando tutto in una volta, ma invece caricando le nozioni di base, che includono un paio di ID richiesti, quindi posso fare richieste API per recuperare solo gli ID di cui ho bisogno per qualsiasi cosa voglia fare.
In Swift ho implementato ciascuno degli array JSON per un'ulteriore elaborazione:
class Match
- id
- date
- teams
class Team
- id
- name
Per salvare il traffico e non richiedere a ogni utente di ricaricare tutto ogni volta che avvia l'app, voglio memorizzare nella cache i risultati, in particolare salvarli da qualche parte. Ma qui è dove diventa complicato, e dove la mia domanda si trova:
Dovrei piuttosto creare una rappresentazione CoreData di ogni elemento per poterli salvare tramite Core Data e interrogare attraverso di essi, o potrei semplicemente salvare il JSON risultante nel file system, caricarlo una volta che l'app si avvia e ri-analizzarlo a quel punto?
Il vantaggio principale di Core Data è dalla mia comprensione che posso effettivamente interrogare le mie voci e collegarle, quindi potrei chiedere più facilmente "Qual è il nome delle squadre dalla prima partita?" . Ci sono altri vantaggi per me per usare Core Data, e quali (dis) vantaggi potresti vedere nello scrivere il file JSON sul disco?