base internas

1 view
Skip to first unread message

Miguel Angel Peña Perez

unread,
Aug 9, 2011, 7:39:53 PM8/9/11
to CocoaHeadsGDL
Que ondas la base interna con NSUserDefault si funciona solo que
quiero guardar mas uno solo dato que ondas que me recomienda que haga

Juan Pablo Ortiz Aréchiga

unread,
Aug 9, 2011, 9:23:29 PM8/9/11
to cocoah...@googlegroups.com
Con NSUserDefault guardas en un plist, que propiamente no es una base de datos sino que piensa en él como un simple archivo de texto donde guardas tus datos. Se usa mucho para guardar preferencias de usuario y en general cosas pequeñas. Si que puedes guardar cuantos datos quieras, el problema es el rendimiento cuando ya tienes muchos datos.

Si necesitas una base de datos hecha y derecha investiga sobre CoreData (que por detras usa sqlite), lleva una curva de aprendizaje, pero vale la pena.

Juan I. Benavides

unread,
Aug 9, 2011, 9:23:26 PM8/9/11
to cocoah...@googlegroups.com
Más que la "cantidad de datos", lo importante es el peso y el propósito de los mismos.

NSUserDefault se debe utilizar para guardar cosas como la configuración del usuario en la aplicación. Pero guardar una imágen o información masiva (muchos registros) por ejemplo, entonces no es recomendable, pues para eso lo ideal sería una base de datos.



2011/8/9 Miguel Angel Peña Perez <perez.m...@gmail.com>

Fernando Barajas

unread,
Aug 9, 2011, 11:10:08 PM8/9/11
to cocoah...@googlegroups.com
Se puede usar fmdb que es facil para usar y fmdb usa sqlite

Miguel Angel Peña Perez

unread,
Aug 10, 2011, 6:04:55 PM8/10/11
to cocoah...@googlegroups.com
eso de fmdb veo esta muy bien gracias por todo lo intetare

Miguel Angel Peña Perez

unread,
Aug 10, 2011, 6:36:13 PM8/10/11
to cocoah...@googlegroups.com
entonces en fmdb con el resulset: de las tablas que creo pones todos lo datos con los 

NSLog(@"%d %@ %@ %@ %@ %f %f",

  [rs stringForColumn:@"nombre"],

  [rs stringForColumn:@"ubicacion"],

  [rs intForColumn:@"capacida"],

  [rs stringForColumn:@"info"],

  [rs stringForColumn:@"after"],

  [rs stringForColumn:@"before"],

  [rs intForColumn:@"distancia"]);

 seria  asi como se impre todos esto datos 

Fernando Barajas

unread,
Aug 10, 2011, 6:50:49 PM8/10/11
to cocoah...@googlegroups.com
Si todos los datos estan en el result set, por ejemplo en uno de mis programas yo necessito calendarios que existing en iCal.
y iCal usa sqlite para guardar los calendarios. entoses uso fmdb para lear los calendarios que existen.
y el code que yo escribi es asi:


  NSString * dbPath = [[NSString stringWithFormat:@"~/Library/Calendars/Calendar Cache"] stringByExpandingTildeInPath];
  FMDatabase * db = [FMDatabase databaseWithPath:dbPath];
  if (![db open]) {
    NSLog(@"Could not open db.");
    [pool release];
    return nil;
  }
  
  [db setShouldCacheStatements:YES];
  
  FMResultSet * rs = [db executeQuery:@"SELECT Z_PRIMARYKEY.Z_ENT, Z_PRIMARYKEY.Z_NAME, ZNODE.ZTITLE, ZNODE.ZUID FROM Z_PRIMARYKEY INNER JOIN ZNODE ON Z_PRIMARYKEY.Z_ENT = ZNODE.Z_ENT AND Z_PRIMARYKEY.Z_NAME like '%Calendar' AND ZNODE.ZISENABLED = 1"];
 
  while ([rs next]) 
  {
    FRBCal * calItem = [[FRBCal alloc] init];
    [calItem setTitle:[rs stringForColumn:@"ZTITLE"]];
    [calItem setUID:[rs stringForColumn:@"ZUID"]];
    
    [calendarItems addObject:calItem];
    [calItem release];
  }
  
  [rs close];




2011/8/10 Miguel Angel Peña Perez <miguel...@buulinc.com>
Reply all
Reply to author
Forward
0 new messages