Ayuda FOR IN, property list. (Urgente para hoy)

Para dar las gracias debes entrar o registrarte en el foro

iMiembro
iMiembro
Mensajes: 3 Agradecido: 0
04 Jun 2013, 17:18# 1

Buenos días, vengo a presentar mi problema en espera de una ayuda:

Tengo una subclase llamada "ADPersona" con su nombre,apellidos,sexo,casado,edad.

Después hice un property list y pues hize 5 personas con nombre,apellido,sexo,casado,edad.

Ya en mi ViewController.m ya pude traer a mi property list y ya lo imprime mediante un NSLOG.

Ahora me piden que tengo que usar un FOR IN, que tengo que instanciar cada objeto.

Si estuve investigando pero no entiendo bien asi es como tengo mi codigo ahorita, ya hice un poco de FOR IN, pero no se que mas sigue.

Código: Seleccionar todo
 ADPersona *persona= [[ADPersona alloc] init];
    persona.nombre=@"Reynaldo";
    persona.apellidoPaterno=@"Verdugo";
    persona.apellidoMaterno=@"Gonzalez";
    persona.casado=YES;
    persona.edad=16;
    persona.sexo= ADHombre;   
   
    NSLog(@" %@ ",[persona description]);
    NSString *rutaArchivo =[[NSBundle mainBundle] pathForResource:@"Personas" ofType:@"plist"];
    NSArray *personasBundle =[NSArray arrayWithContentsOfFile:rutaArchivo];
   
    for(NSDictionary *diccionario in personasBundle)
    {
        NSLog(@"Objeto : %@",diccionario);
    }



Les envio saludos y espero una ayuda :)
Gracias  
Etiquetado en:
iMiembro 7G
iMiembro 7G
Mensajes: 302 Agradecido: 80
04 Jun 2013, 23:22# 2
aikt escribió:Buenos días, vengo a presentar mi problema en espera de una ayuda:

Tengo una subclase llamada "ADPersona" con su nombre,apellidos,sexo,casado,edad.

Después hice un property list y pues hize 5 personas con nombre,apellido,sexo,casado,edad.

Ya en mi ViewController.m ya pude traer a mi property list y ya lo imprime mediante un NSLOG.

Ahora me piden que tengo que usar un FOR IN, que tengo que instanciar cada objeto.

Si estuve investigando pero no entiendo bien asi es como tengo mi codigo ahorita, ya hice un poco de FOR IN, pero no se que mas sigue.

Código: Seleccionar todo
 ADPersona *persona= [[ADPersona alloc] init];
    persona.nombre=@"Reynaldo";
    persona.apellidoPaterno=@"Verdugo";
    persona.apellidoMaterno=@"Gonzalez";
    persona.casado=YES;
    persona.edad=16;
    persona.sexo= ADHombre;   
   
    NSLog(@" %@ ",[persona description]);
    NSString *rutaArchivo =[[NSBundle mainBundle] pathForResource:@"Personas" ofType:@"plist"];
    NSArray *personasBundle =[NSArray arrayWithContentsOfFile:rutaArchivo];
   
    for(NSDictionary *diccionario in personasBundle)
    {
        NSLog(@"Objeto : %@",diccionario);
    }



Les envio saludos y espero una ayuda :)


Un forin es un for de un array en iteración, una forma de simplificar un bucle for y el equivalente a foreach de C#.

Partiendo de la base que en el código que has puesto personasBundle sea un NSArray de aDPersona, el forin sería así:

for(ADPersona *persona in personasBundle)
{
NSLog(@"Objeto : %@", persona);
}

Esto significa que persona es cada ADPersona que contiene personasBundle.

Ten en cuenta que el NSLog de dentro del bucle mostrará la información que devuelva el método description, puesto que es al que se llama implícitamente.

Esto: NSLog(@"Objeto : %@", persona);
es equivalente a esto: NSLog(@"Objeto : %@", [persona description]);

No sé si me explico. Si tienes alguna duda pregunta.

Enviado desde mi XOOM 2 ME usando Tapatalk 2
Gracias  
1 persona ha dado las gracias: aikt
iMiembro
iMiembro
Mensajes: 3 Agradecido: 0
05 Jun 2013, 16:11# 3
Hola, bueno ayer me dieron una mínima ayuda, que hiciera un metodo en mi ADPersona.m como "initWithDictionary" y despues con ese metodo ahora si usarlo en el FOR IN, esto fue lo que hize

ADPersona.h
Código: Seleccionar todo
-(id) initWithDictionary:(NSDictionary *) diccionario;


ADPersona.m
Código: Seleccionar todo
-(id)initWithDictionary:(NSDictionary *)diccionario {
    self = [super init];
    if (self){
        self.nombre=[diccionario objectForKey:@"nombre"];
        self.apellidoPaterno=[diccionario objectForKey:@"apellidoPaterno"];
        self.apellidoMaterno=[diccionario objectForKey:@"apellidoMaterno"];
        self.casado=[[diccionario objectForKey:@"casado"] boolValue];
        self.edad=[[diccionario objectForKey:@"edad"] intValue];
        self.sexo=[[diccionario objectForKey:@"sexo"] intValue];
        self.mayorEdad=[[diccionario objectForKey:@"mayorEdad"] intValue];
       
    }
    return self;
}



Hola de nuevo, te informo que ya pude hacer el ejercicio, esto fue lo que hice ya al final en mi ADViewController.m:

Código: Seleccionar todo
    for(NSDictionary* diccionario  in personasBundle)
    {
        ADPersona *persona=[[ADPersona alloc] initWithDictionary:diccionario];
        NSLog(@"Descripcion : %@ ",persona);
       
    }

Y ya sale con una buena descripción que sale por ejemplo asi --> "El nombre de la persona es: Amalia, su apellido Paterno es:Carmona"etc etc.

Me pidieron que si queria un PLUS agregara un NSMutableArray, igual tratare de averiguar, pero ya con eso estoy contento
Gracias  

Publicidad
Publicidad