Rispetto alle prime versioni di iOS una delle innovazioni più importanti è stata l’introduzione di CoreData. Esso è un approccio attraverso il quale è possibile creare un sistema di archiviazione complesso di dati all’interno della propria applicazione. Gli argomenti relativi a CoreData sono estremamente complessi e non possono essere esauriti all’interno di un singolo suggerimento, anzi riguardano concetti teorici talmente profondi da meritare di ricevere una piccola pubblicazione.
Una cosa che però salta subito all’occhio è che CoreData pur usando delle strutture simil SQL non è SQL, quindi l’interrogazione di tabelle attraverso JOIN o altri metodi non può essere preso in considerazione. Bisogna seguire le regole imposte dal sistema affinchè tutto funzioni regolarmente. Se non si preferisce adattarsi a queste regole bisogna scrivere il database di sana pianta così come i sistemi di interfacciamento ad esso.
Qualcuno, fino alla versione 5.0 (esclusa) spesso aggirava l’ostacolo iniettando delle istruzioni SQL all’interno del codice. Questo, oltre che una pratica discutibile, è anche molto rischiosa in quanto potrebbe andare in conflitto con i thread di gestione del sistema stesso. Forse anche per prevenire questo (oltre che per incrementare la sicurezza in virtù dell’adozione di iCloud) dalla versione 5.0 del sistema operativo iOS i database creati con CoreData sono criptati, o comunque protetti.
Se è pur vero che CoreData non permette di usare istruzioni in SQL puro, è anche vero che per molte cose semplifica il compito non di poco.
Uno degli aspetti su cui si notano tali semplicificazioni sono le selezioni di entità in base alle date.
Continue reading »



