2015-03-17 7 views
6

Utilizzo CloudKit per recuperare/archiviare dati, ma vorrei anche avere un livello di persistenza locale. CloudKit offre qualsiasi tipo di capacità di archiviazione locale? O dovrei usare NSUserDefaults (NSKeyedArchiver/NSKeyedUnarchiver)?iOS Swift: persistenza locale con CloudKit

risposta

3

Non esiste alcun meccanismo per incassare i dati localmente in CloudKit, devi farlo tu stesso. Posso consigliarti di dare un'occhiata a EVCloudKitDao che è una libreria di convenienza per CloudKit che ha il supporto per l'incasso locale su un file.

+0

Puoi consigliare tutti gli articoli o le risorse per l'apprendimento di più locali archiviazione con CloudKit? – colindunn

+0

verificato EVCloudKitDao, wow, tu sei un ninja: D non sei ** utilizzando alcun 'Core Data', ma sto capendo bene, che hai classi definite nel pacchetto, e con il riflesso che carichi, istanziare , valore impostato? wow, è difficile, perché la riflessione e non i dati di base? fondamentalmente i Core Data fanno lo stesso, con meno codice boilerplate ;-) –

+0

Sto usando il reflection per ottenere e impostare tutti i valori da un oggetto normale. Quindi l'unica cosa che devi fare è definire le proprietà in un oggetto. EVCloudKitDao gestirà il resto. Assicurerà che tutte le proprietà verranno aggiunte a un CKRecord e viceversa. La memorizzazione su dati di base sarebbe un'opzione, ma è comunque necessario analizzare da e verso un CKRecord. Ho deciso di archiviare i miei dati localmente in file usando NSCoding invece di scriverlo su un database. –

0

No caching costruita nel CloudKit, in ogni caso quando si implementa un tenere a mente per la cache solo i campi di sistema per ripristinare e sintonia con CloudKit nuovo controllo questo https://stackoverflow.com/a/35355916/1787109