Core Data è un framework utilizzato per gestire gli oggetti del livello del modello nell’applicazione. Fornisce soluzioni generalizzate e automatizzate per attività comuni associate al ciclo di vita dell’oggetto e alla gestione del grafico dell’oggetto, inclusa la persistenza.
I dati di base in genere riducono del 50-70% la quantità di codice che scrivi per supportare il livello del modello. Ciò è dovuto principalmente alle seguenti funzionalità integrate che non è necessario implementare, testare o ottimizzare:
-
Monitoraggio delle modifiche e gestione integrata di undo e redo oltre la modifica del testo di base.
-
Mantenimento della propagazione del cambiamento, incluso il mantenimento della coerenza delle relazioni tra gli oggetti.
-
Caricamento pigro di oggetti, futures parzialmente materializzati (faulting) e condivisione dei dati copy-on-write per ridurre l’overhead.
-
Convalida automatica dei valori delle proprietà. Gli oggetti gestiti estendono i metodi standard di convalida della codifica chiave-valore per garantire che i singoli valori si trovino all’interno di intervalli accettabili, in modo che le combinazioni di valori abbiano senso.
-
Strumenti di migrazione dello schema che semplificano le modifiche allo schema e consentono di eseguire un’efficiente migrazione dello schema sul posto.
-
Integrazione opzionale con il livello controller dell’applicazione per supportare la sincronizzazione dell’interfaccia utente.
-
Raggruppamento, filtraggio e organizzazione dei dati in memoria e nell’interfaccia utente.
-
Supporto automatico per la memorizzazione di oggetti in archivi di dati esterni.
-
Compilazione di query sofisticata. Invece di scrivere SQL, è possibile creare query complesse associando un oggetto NSPredicate a una richiesta di recupero.
-
Monitoraggio della versione e blocco ottimistico per supportare la risoluzione automatica dei conflitti multiwriter.
-
Integrazione efficace con le catene di strumenti macOS e iOS.