2012-06-17 17 views
6

Nella mia applicazione (iOS 5) voglio salvare i dati - Voglio risparmiare i debiti. Così la sua:Il modo migliore per salvare i dati su iOS?

  • più o meno soldi
  • la quantità di denaro
  • e il nome che ha i debiti (o il nome in cui si hanno i debiti)

Ma don come salvare i dati (NSUserdefaults, Core data, SQLLite)

Forse puoi dirmi il modo migliore per salvarli?

+0

Quanti record si prevede di salvare? – Gruntcakes

+0

Quello definito dall'utente - quindi non posso sapere (potrebbe essere solo 4 - ma anche 300). Dipende dall'utilizzatore. – H3rrVorr4g3nd

risposta

10

Il modo più semplice per memorizzare una piccola quantità di dati sul dispositivo è utilizzare NSUserDefaults. Ma solo gli elenchi di proprietà potrebbero essere salvati in questo modo. Un elenco di proprietà è una combinazione di oggetti di 6 tipi, NSNumber, NSString, NSArray, NSDictionary, NSDate, NSData. Nel tuo caso è facile da fare. Ad esempio, per salvare un nuovo record del debito è possibile utilizzare il metodo seguente:

#define DEBTS_LIST_KEY @"listOfAllDebts" 
#define DEBTOR_NAME_KEY @"debtorName" 
#define DEBT_AMOUNT_KEY @"amountOfDebt" 

-(void) saveDebt:(CGFloat) debtAmount forName:(NSString *) debtorName 
{ 
    // pointer to standart user defaults 
    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; 
    // the mutalbe array of all debts 
    NSMutableArray * alldebtRecords = [[defaults objectForKey:DEBTS_LIST_KEY] mutableCopy]; 
    // create new record 
    // to save CGFloat you need to wrap it into NSNumber 
    NSNumber * amount = [NSNumber numberWithFloat:debtAmount]; 

    NSDictionary * newRecord = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:amount,debtorName, nil] forKeys:[NSArray arrayWithObjects:DEBT_AMOUNT_KEY, DEBTOR_NAME_KEY, nil]]; 
    [alldebtRecords addObject:newRecord]; 
    [defaults setObject:alldebtRecords forKey:DEBTS_LIST_KEY]; 
    // do not forget to save changes 
    [defaults synchronize]; 
} 

Per readList di debiti che avete letto qualcosa di simile.

Tuttavia, vi consiglio di utilizzare i dati di base. È più flessibile e non dovrai scrivere tutto questo codice per gestire i tuoi dati (per modificare i record esistenti o per eliminarli). Sarai in grado di estendere il tuo modello molto più facilmente, ad esempio, quando vuoi salvare la data del debito. Questo è il collegamento a a good tutorial

+1

Pensavo sempre ai dati di base ... ma tutti i tutorial erano un po 'difficili da capire. Ma il tuo link mi ha davvero aiutato e ho potuto implementare i dati del Core nella mia applicazione ora (davvero facile o.O). Grazie! :) – H3rrVorr4g3nd

+0

Sono nuovo di Core Data e questo tutorial è stato molto utile anche per me. Sono contento di poterti aiutare. – Yarlik

3

Se la quantità di record è definito dall'utente, e crescerà con app uso, suggerisco Core Data, che può essere supportato da SQLite. Se stai lavorando in un Xcode moderno (ad esempio Xcode 4), la creazione di modelli è semplice e grafica. Se hai mai lavorato con i framework ORM, l'interfaccia per le query, ecc. Dovrebbe essere facile da comprendere.

Cerca in giro per alcuni tutorial, ma sii specifico sulla ricerca di tutorial che corrispondono alla tua versione di Xcode, dato che lo sviluppo di Core Data sta cambiando molto ultimamente.

Problemi correlati