2012-06-17 7 views
6

En mi aplicación (iOS 5) quiero guardar datos: quiero ahorrar deudas. Así que es:¿La mejor manera de guardar datos en iOS?

  • más o menos dinero
  • la cantidad de dinero
  • y el nombre que tiene las deudas (o el nombre en el que tiene las deudas)

Pero Don Cómo guardar los datos (NSUserdefaults, Core data, SQLLite)

¿Quizás me puede decir la mejor manera de guardarlos?

+0

¿Cuántos registros espera guardar? – Gruntcakes

+0

Eso es definido por el usuario, por lo que no puedo saber (podría ser solo 4, sino también 300). Depende del usuario. – H3rrVorr4g3nd

Respuesta

10

La manera más fácil de almacenar una cantidad pequeña de datos en su dispositivo es usar NSUserDefaults. Pero solo las listas de propiedades podrían guardarse de esta manera. Una lista de propiedades es una combinación de objetos de 6 tipos, NSNumber, NSString, NSArray, NSDictionary, NSDate, NSData. En su caso, es fácil de hacer. Por ejemplo, para guardar un nuevo registro de la deuda se puede utilizar el método siguiente:

#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]; 
} 

Para leelista de las deudas que haya leído algo similar.

Pero le recomiendo que utilice datos básicos. Es más flexible y no tendrá que escribir todo este código para administrar sus datos (para editar registros existentes, o para eliminarlos). Podrá ampliar su modelo mucho más fácilmente, por ejemplo, cuando desee guardar la fecha de la deuda. Este es el enlace a a good tutorial

+1

Siempre pensé en Core Data ... pero todos los tutoriales fueron un poco difíciles de entender. Pero su enlace realmente me ayudó y pude implementar datos Core en mi aplicación ahora (realmente fácil). ¡Gracias! :) – H3rrVorr4g3nd

+0

Soy nuevo en Core Data y este tutorial fue muy útil para mí también. Me alegro de poder ayudar. – Yarlik

3

Si la cantidad de registros es definido por el usuario y crecerá con aplicación uso, sugiero Core Data, que puede ser respaldado por SQLite. Si está trabajando en un Xcode moderno (es decir, Xcode 4), la creación de modelos es fácil y gráfica. Si alguna vez trabajó con marcos ORM anteriormente, la interfaz para consultas, etc. debería ser fácil de comprender.

Busque algunos tutoriales, pero sea específico para encontrar tutoriales que coincidan con su versión de Xcode, ya que el desarrollo de Core Data ha cambiado mucho últimamente.

Cuestiones relacionadas