AVISO: Cualquier pregunta que no cumpla ninguno de estos criterios podrá ser borrada sin previo aviso.

Hola un cordial saludo a todos, por favor me podrían ayudar con una una duda que tengo, estoy haciendo como primera aplicación de aprendizaje un directorio donde guarde contactos, en los cuales deseo almacenar datos como su nombre, teléfono, dirección y quisiera saber como hago para almacenar estos datos en una especia de archivo o base de datos en el IPhone, es decir que llene el formulario, luego presione un botón(guardar) y me guarde los datos temporal mente hasta que quiera borrarlos, y acceder a ellos cuando lo desee.

Por favor cualquier aporte o documentación(en español si es posible) del tema me seria de gran ayuda.

Gracias.

preguntado 23 Ene '11, 04:54

vlado's gravatar image

vlado
1111


Para guardar información en tu aplicación tienes básicamente dos opciones, sqlite y coredata. Busca información sobre las dos tecnologías y elige la que mejor se adapte a tus necesidades.

¡Suerte!

enlace permanente

respondido 23 Ene '11, 17:51

Saro's gravatar image

Saro
5341510

hombre si quieres almacenar algo muy concreto y simple tambien puedes usar el NSUserDefaults

un saludo

enlace permanente

respondido 04 Oct '11, 10:58

ivanchi69's gravatar image

ivanchi69
1112

En mi caso suelo usar Core Data siempre. Pero si no vas a tener un volumen de datos almacenados grande siempre puedes hacer uno del NSUserDefaults.

Saludos

enlace permanente

respondido 05 Oct '11, 17:45

Isis's gravatar image

Isis
944813

editó 05 Oct '11, 17:45

Podes usar NSUserDefault, los datos los podes almacenar en una property list. algo asi te paso uno que habia echo que seguramente te de una idea, tiene 2 text field, un boton para guardar, y botones siguiente , anterior y eliminar. lo guarda en una property

//Agenda

define KEY_NOMBRE @"Nombre"

define KEY_PROFESION @"Profesion"

define ficheroPersistente @"data.plist"

@interface ViewController : UIViewController<uitextfielddelegate> { UITextField nombre; UITextField profesion;

UILabel *nombreMostrado;
UILabel *profesionMostrada;

UIButton *anterior;
UIButton *siguiente;
UIButton *eliminar;

NSMutableArray *listaContactos; //Array Dinamico
NSInteger contactoActual;

} @property(nonatomic,retain) IBOutlet UITextField nombre; @property(nonatomic,retain) IBOutlet UITextField profesion; @property(nonatomic,retain) IBOutlet UILabel nombreMostrado; @property(nonatomic,retain) IBOutlet UILabel profesionMostrada; @property(nonatomic,retain) IBOutlet UIButton anterior; @property(nonatomic,retain) IBOutlet UIButton siguiente; @property(nonatomic,retain) IBOutlet UIButton *eliminar;

@property(nonatomic,retain)NSMutableArray *listaContactos; @property(nonatomic)NSInteger contactoActual;

-(void)mostrarContacto; -(void) refrescarBotones; -(IBAction)onGuardarPulsado:(id)sender; -(IBAction)mostrarSiguiente:(id)sender; -(IBAction)mostrarAnterior:(id)sender; -(IBAction)eliminarContacto:(id)sender;

define kContactos @"contactos"

@implementation ViewController @synthesize nombre; @synthesize profesion; @synthesize nombreMostrado; @synthesize profesionMostrada; @synthesize anterior; @synthesize siguiente; @synthesize eliminar; @synthesize listaContactos; @synthesize contactoActual;

  • (void)viewDidLoad {

    listaContactos = [[NSMutableArray alloc]initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:kContactos]]; contactoActual = [listaContactos count] -1;

    [self mostrarContacto];

    UIApplication *app = [UIApplication sharedApplication]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillTerminate:) name:UIApplicationWillTerminateNotification object:app]; [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. }

-(void) refrescarBotones { if (contactoActual <0) { anterior.enabled =NO; siguiente.enabled =NO; eliminar.enabled =NO; } else { anterior.enabled=YES; siguiente.enabled = YES; eliminar.enabled = YES; if (contactoActual == 0) { anterior.enabled =NO; } if (contactoActual == ([listaContactos count] -1)) { siguiente.enabled = NO; } } }

-(IBAction)onGuardarPulsado:(id)sender { NSDictionary *item = [NSDictionary dictionaryWithObjectsAndKeys:nombre.text,KEY_NOMBRE,profesion.text,KEY_PROFESION, nil]; [self.listaContactos addObject:item];

[[NSUserDefaults standardUserDefaults] setObject:listaContactos forKey:kContactos];
[[NSUserDefaults standardUserDefaults] synchronize];

contactoActual = [listaContactos count] -1; //Ultimo que se introdujo
[self mostrarContacto];

nombre.text = @"";
profesion.text = @"";
[nombre resignFirstResponder]; //oculto teclado
[profesion resignFirstResponder];

}

-(void)mostrarContacto { if (contactoActual == -1) // No hay elementos { nombreMostrado.text = @"-"; profesionMostrada.text = @"-"; }

else
{
    NSDictionary *item = [listaContactos objectAtIndex:contactoActual];
    nombreMostrado.text = [item objectForKey:KEY_NOMBRE];
    profesionMostrada.text = [item objectForKey:KEY_PROFESION];
}
[self refrescarBotones];

}

-(IBAction)mostrarSiguiente:(id)sender { if(contactoActual+1<[listaContactos count]) //Si la lista de contactos es 2 y el contactoactual es 2 solo lo muestra { contactoActual++; } [self mostrarContacto]; }

-(IBAction)mostrarAnterior:(id)sender { if(contactoActual > -1) //Si la lista de contactos es 0 y el contacto actual es 0 { contactoActual--; } [self mostrarContacto]; }

-(IBAction)eliminarContacto:(id)sender { if ([listaContactos count]>0) { if(contactoActual >=0) { [listaContactos removeObjectAtIndex:contactoActual]; contactoActual--; } } else { contactoActual = -1; } [self mostrarContacto];

[[NSUserDefaults standardUserDefaults] setObject:listaContactos forKey:kContactos];
[[NSUserDefaults standardUserDefaults] synchronize];

}

enlace permanente

respondido 05 Oct '11, 22:03

tetesc89's gravatar image

tetesc89
11113

Tu respuesta:
Activar/desactivar vista previa

Sobre esta pregunta

Etiquetas de la pregunta:

×20
×5
×4
×1

Pregunta realizada el: 23 Ene '11, 04:54

Pregunta visitada: 955 veces

Última modificación: 05 Oct '11, 22:03

Seguir esta pregunta

Por Email:

Una vez que entres podrás suscribirte desde aquí para recibir actualizaciones

Por RSS:

Respuestas

Respuestas y Comentarios

Realizar Donación